Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

Вы также можете попробовать ImageMagic, который отлично подходит для создания спрайтов CSS. В этом уроке описывается здесь. Пример

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

Ответ 2

Вы также можете использовать 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.

Ответ 3

Используйте pnmcat для пакета netpbm.

Вам, вероятно, придется конвертировать ваши входные файлы туда и сюда для использования:

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