我想尝试使用CSS Sprite技术将几个缩略图加载为一个单独的图像。所以我需要在服务器中离线“合并”几个缩略图到一个单独的文件中。
假设我有10个相同大小的缩略图。你建议我如何从Linux命令行“合并”它们?
发布于 2013-11-19 23:15:46
你也可以试试ImageMagic,它非常适合创建CSS sprites。关于它的一些教程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
发布于 2015-08-22 17:46:34
你也可以使用ImageMagick的一个更轻更快的分支GraphicsMagick:
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的两倍。
发布于 2013-11-19 23:11:52
使用netpbm- pnmcat
的包。
您可能需要来回转换您的输入文件才能使用它:
pnmcat -lr <(pngtopnm 1.png) <(pngtopnm 2.png) | pnmtopng > all.png
编辑:正如用户Hashbrown在评论中指出的那样,这可能会在PNG中遇到不同大小和/或透明度的问题。为了避免这一点,他想出了这个解决方案(只是复制到这里,因为Q是封闭的,不能添加新的答案):
pnmcat -jleft -tb \
<(pngtopnm image139.png) \
<(pngtopnm image73.png) \
| pnmtopng \
-alpha <(pnmcat -black -jleft -tb \
<(pngtopnm -alpha image139.png) \
<(pngtopnm -alpha image73.png) \
) \
>test.png
不过,我并没有测试这个解决方案。
https://stackoverflow.com/questions/20075087
复制相似问题