Hợp nhất các hình ảnh cạnh nhau (theo chiều ngang)


98

Tôi có năm hình ảnh kích thước: 600x30, 600x30, 600x30, 600x30, 810x30. Tên của chúng lần lượt là: 0.png, 1.png, 2.png, 3.png, 4.png.

Làm cách nào để hợp nhất chúng theo chiều ngang để tạo hình ảnh có kích thước 3210x30 với ImageMagick?

Câu trả lời:


117

ImageMagick đi kèm với montagetiện ích này. Montage sẽ nối từng hình ảnh cạnh nhau cho phép bạn điều chỉnh khoảng cách giữa mỗi hình ảnh ( -geometry) và bố cục chung ( -tile).

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

Các ví dụ khác có thể được tìm thấy trên trang Sử dụng Montage


1
tài liệu dựng phim chỉ định rằng cú pháp [0-5] dành cho linux, vì vậy tôi đoán nếu bạn đang sử dụng windows, bạn phải nhập / tạo tất cả các tên tệp. tức là dựng phim 0.png 1.png 2.png 3.png 4.png ...
Dan

3
Bạn là nhất! Tôi đã tìm kiếm điều này cả đời!
Robin

@ RodrigoGraça Xem hướng dẫn Sử dụng & Ví dụ về xử lý nền + độ trong suốt.
emcconville

nó cũng hoạt động cho sự kết hợp của jpg và png. cảm ơn
joydeep bhattacharjee

3
[0-5].pngsẽ tạo ra "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", sáu tệp khác nhau, nhưng bạn tile 5x1sẽ chỉ lấy năm tệp, để lại cho bạn hai tệp đầu ra. Điều này nên sử dụng [0-4].pnghoặc -tile 6x1.
R. Barrett

79

ImageMagick có công cụ dòng lệnh có tên ' chuyển đổi ' để hợp nhất hình ảnh theo chiều ngang hoặc cho mục đích khác. Tôi đã thử lệnh này và hoạt động hoàn hảo trên trường hợp của bạn:
Để nối các hình ảnh theo chiều ngang:
convert +append *.png out.png

Để xếp chồng hình ảnh theo chiều dọc:
convert -append *.png out.png


có thể được thêm vào một hành động tùy chỉnh Thunar theo hình thức này (. cũ để gia nhập theo chiều dọc = up-thị trấn): convert -append %F joined-image.png. Tất cả các hình ảnh được chọn sẽ được tham gia như một png trong thứ tự chữ cái

1
Nếu sử dụng ImageMagick 7+, bạn sẽ cần đặt các hình ảnh bạn đang làm việc trước các thông số:convert *.png +append out.png
Mazuhl 5/218

7

Rất đơn giản với ImageMagick ( brew install imagemagick)

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

0

Bất kỳ ai sử dụng MiniMagickđá quý rails đều có thể sử dụng công cụ tích hợp để hợp nhất hình ảnh:

# 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

Kiểm tra tài liệu để biết #geometrycác tùy chọn để xử lý việc thay đổi kích thước và vị trí. Ví dụ hiện tại sẽ thay đổi kích thước hình ảnh thành 700pxchiều cao trong khi vẫn giữ nguyên tỷ lệ khung hình của hình ảnh. +0+0sẽ đặt hình ảnh không có khoảng cách giữa chúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.