Злиття зображень поруч (горизонтально)


98

У мене є п’ять зображень розмірів: 600x30, 600x30, 600x30, 600x30, 810x30. Їх імена: 0.png, 1.png, 2.png, 3.png, 4.png, відповідно.

Як об’єднати їх горизонтально, щоб зробити зображення розміром 3210x30 із ImageMagick?

Відповіді:


117

ImageMagick постачається з montageутилітою. Монтаж додаватиме кожне зображення поруч, дозволяючи регулювати інтервал між кожним зображенням ( -geometry) та загальним макетом ( -tile).

montage [0-5].png -tile 5x1 -geometry +0+0 out.png

Інші приклади можна знайти на сторінці використання Montage


1
Документація до монтажу вказує, що синтаксис [0-5] призначений для Linux, тому, мабуть, якщо ви перебуваєте у Windows, вам слід ввести / сформувати всі імена файлів. тобто монтаж 0.png 1.png 2.png 3.png 4.png ...
Дан

3
Ти найкращий! Я шукав це все своє життя!
Робін

@ RodrigoGraça Див. Посібник із використання та приклади щодо роботи з прозорістю та фоном.
emcconville

це працює і для поєднання jpg та png. спасибі
joydeep bhattacharjee

3
[0-5].pngвидасть "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", шість різних файлів, але ви tile 5x1візьмете лише п'ять із них, залишивши у вас два вихідних файли. Для цього слід використовувати [0-4].pngабо -tile 6x1.
Р. Барретт

79

ImageMagick має інструмент командного рядка під назвою ' конвертувати ' для об'єднання зображень горизонтально або для інших цілей. я спробував цю команду і чудово працюю над вашим випадком:
Щоб об’єднати зображення горизонтально:
convert +append *.png out.png

Щоб укласти зображення вертикально:
convert -append *.png out.png


які можуть бути додані до призначеного для користувача дії Thunar в цій формі (. ех приєднатися вертикально = вгору-місто): convert -append %F joined-image.png. Всі вибрані зображення будуть об’єднані як один png в алфавітному порядку

1
Якщо ви використовуєте ImageMagick 7+, вам потрібно буде розмістити зображення, над якими ви працюєте, перед параметрами:convert *.png +append out.png
Mazuhl

8

Дуже просто за допомогою ImageMagick ( brew install imagemagick)

convert +append image_1.png image_2.png new_image_conbined.png

0

Той, хто використовує 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розмістить зображення без проміжків між ними.


0

І якщо зображення не мають однакової висоти, і ви хочете виправити це для всіх них, ви можете додати -resize, наприклад, щоб зафіксувати висоту 400 пікселів:

convert +append image_1.png image_2.png -resize x400 new_image_conbined.png
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.