Как объединить изображения в командной строке?
Я хотел бы попробовать CSS Sprite техника загрузки нескольких эскизов в виде одного изображения. Поэтому мне нужно "объединить" несколько эскизов в один файл в автономном режиме на сервере.
Предположим, у меня есть 10 миниатюр одного размера. Как бы вы предложили мне "объединить" их из командной строки Linux?
4 ответов:
вы также можете попробовать ImageMagic который отлично подходит для создания CSS спрайтов. Некоторые учебник об этом здесь.
пример (вертикальный спрайт):
convert image1.png image2.png image3.png -append result/result-sprite.pngпример (горизонтальный спрайт):
convert image1.png image2.png image3.png +append result/result-sprite.png
вы также можете использовать 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.766sGraphicsMagick почти в два раза быстрее, чем ImageMagick.
использовать
pnmcatиз netpbm-пакета.вам, вероятно, придется конвертировать входные файлы туда и обратно для его использования:
pnmcat -lr <(pngtopnm 1.png) <(pngtopnm 2.png) | pnmtopng > all.png
Если вы предпочитаете объединять изображения слева направо, используйте следующую команду:
convert image{1..0}.png +append result/result-sprite.pngПримечание
+appendвместо-append.
Comments