如何在命令行中合并图像?

时间:2013-11-19 15:09:18

标签: linux image-processing command-line

我想尝试CSS Sprite技术将一些缩略图加载为单个图像。所以我需要在服务器中离线单个文件中“合并”一些缩略图。

假设我有10个相同大小的缩略图。您如何建议我从Linux命令行“合并”它们?

4 个答案:

答案 0 :(得分:156)

您还可以尝试ImageMagic,它非常适合创建CSS精灵。关于它的一些教程here

示例(垂直精灵):

convert image1.png image2.png image3.png -append result/result-sprite.png

示例(水平精灵):

convert image1.png image2.png image3.png +append result/result-sprite.png

答案 1 :(得分:23)

您还可以使用GraphicsMagick,一个更轻,更快的ImageMagick分支:

gm convert image1.png image2.png -append combined.png

合并12张图片的简单时间比较:

time convert image{1..12}.jpg -append test.jpg

real    0m3.178s
user    0m3.850s
sys     0m0.376s

time gm convert image{1..12}.jpg -append test.jpg

real    0m1.912s
user    0m2.198s
sys     0m0.766s

GraphicsMagick几乎是ImageMagick的两倍。

答案 2 :(得分:6)

使用netpbm-package的pnmcat

您可能需要来回转换输入文件才能使用它:

pnmcat -lr <(pngtopnm 1.png) <(pngtopnm 2.png) | pnmtopng > all.png

答案 3 :(得分:3)

如果您希望从左到右合并图片,请使用以下命令:

convert image{1..0}.png +append result/result-sprite.png

请注意 +append ,而不是 -append