Как объединить изображения в командной строке?



Я хотел бы попробовать CSS Sprite техника загрузки нескольких эскизов в виде одного изображения. Поэтому мне нужно "объединить" несколько эскизов в один файл в автономном режиме на сервере.



Предположим, у меня есть 10 миниатюр одного размера. Как бы вы предложили мне "объединить" их из командной строки Linux?

652   4  

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.766s

GraphicsMagick почти в два раза быстрее, чем 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

    Ничего не найдено.