Відповіді:
ImageMagick постачається з montage
утилітою. Монтаж додаватиме кожне зображення поруч, дозволяючи регулювати інтервал між кожним зображенням ( -geometry
) та загальним макетом ( -tile
).
montage [0-5].png -tile 5x1 -geometry +0+0 out.png
Інші приклади можна знайти на сторінці використання Montage
[0-5].png
видасть "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", шість різних файлів, але ви tile 5x1
візьмете лише п'ять із них, залишивши у вас два вихідних файли. Для цього слід використовувати [0-4].png
або -tile 6x1
.
ImageMagick має інструмент командного рядка під назвою ' конвертувати ' для об'єднання зображень горизонтально або для інших цілей. я спробував цю команду і чудово працюю над вашим випадком:
Щоб об’єднати зображення горизонтально:
convert +append *.png out.png
Щоб укласти зображення вертикально:
convert -append *.png out.png
convert -append %F joined-image.png
. Всі вибрані зображення будуть об’єднані як один png в алфавітному порядку
convert *.png +append out.png
Той, хто використовує MiniMagick
рельсовий самоцвіт, може використовувати вбудований інструмент для об’єднання зображень:
# Replace this with the path to the images you want to combine
images = [
"image1.jpg",
"image2.jpg"
]
processed_image = MiniMagick::Tool::Montage.new do |image|
image.geometry "x700+0+0"
image.tile "#{images.size}x1"
images.each {|i| image << i}
image << "output.jpg"
end
Перегляньте документацію щодо #geometry
варіантів обробки розміру та розміщення. Поточний приклад змінить розмір зображення на 700px
висоту, зберігаючи пропорції зображення. +0+0
розмістить зображення без проміжків між ними.
І якщо зображення не мають однакової висоти, і ви хочете виправити це для всіх них, ви можете додати -resize
, наприклад, щоб зафіксувати висоту 400 пікселів:
convert +append image_1.png image_2.png -resize x400 new_image_conbined.png