Câu hỏi Kết hợp nhiều hình ảnh bằng ImageMagick


Tôi muốn kết hợp nhiều hình ảnh thành một hình ảnh bằng cách sử dụng ImageMagick. Để giải thích tốt hơn một chút, tôi muốn kết quả trông giống như thế này:

Đó là, tôi có một số ảnh chụp màn hình, và tôi muốn biến chúng thành một hình ảnh với những hình ảnh gốc trên đầu trang của mỗi khác.

Bởi Googling, tôi đã đi qua lệnh 'composite', nhưng tôi không biết nếu, và trong trường hợp đó làm thế nào để sử dụng nó để có được kết quả tôi muốn.


144
2018-05-30 18:30


gốc


Bạn đã kiểm tra chưa tưởng tượng nhiều ví dụ về lớp hình ảnh? - timbooo
stackoverflow.com/questions/12076293/… - Ciro Santilli 新疆改造中心 六四事件 法轮功


Các câu trả lời:


Đối với bất kỳ số lượng tệp đầu vào nào có tên in-<một cái gì đó>.jpg:

convert -append in-*.jpg out.jpg

Để có các tệp cụ thể được thêm vào hoặc bỏ qua các số thay vì nhận được toàn bộ "glob", bạn có thể đề cập đến các tệp đầu vào một cách rõ ràng và đặt append lệnh sau

chuyển đổi in-1.jpg in-5.jpg in-N.jpg + nối thêm out-in1-plus-in5-and-inN.jpg

Bạn có thể dùng -append (thay vì +append) để dán dọc.

Hoặc là:

montage -mode concatenate -tile 1x in-*.jpg out.jpg

cũng sẽ tạo một tệp out.jpg có chứa một kết nối dọc của hình ảnh nguồn.

convert

Để ghép nối đơn giản trong một hàng hoặc cột, append tùy chọn của convert công cụ là đủ. Lưu ý rằng -append ghép tất cả hình ảnh theo chiều dọc, tạo một cột với n hàng, và +append ghép theo chiều ngang, tạo một hàng với n cột.

(Xem ImageMagick: Tùy chọn dòng lệnh.)

montage

Để kiểm soát tốt hơn bố cục, chúng tôi sẽ cần montage dụng cụ. montage -mode concatenate sẽ dán các hình ảnh đầu vào với nhau như append tùy chọn và -tile 1x kiểm soát bố cục được áp dụng.

tile theo định dạng cột×hàng, nhưng một trong hai bên có thể bị thiếu và montage sẽ tìm ra cách để đáp ứng các ràng buộc.

Đang sử dụng 1x (chính xác một cột với bất kỳ số hàng nào) ở đây để có được hiệu ứng giống như -append. Không có -tile 1x, nó sẽ tham gia các hình ảnh như +append, mặc định là -tile x1 (bất kỳ số cột nào trên một hàng).

(Xem Ví dụ về ImageMagick: Montage, Mảng hình ảnh.)


219
2018-05-30 19:37



Cảm ơn. phụ thêm hoạt động tốt, nhưng tôi xem xét montage bị hỏng: nếu phông chữ ghostscript không được cài đặt, nó sẽ bảo lãnh, NGAY CẢ nếu bạn không chú thích hình ảnh. Phông chữ phải được tải theo yêu cầu, không phải trước. - Bram
@ Bram: Tôi không biết điều đó và mạnh mẽ đồng ý. Bạn có biết nếu GraphicsMagick hoạt động giống nhau không? - peth
Làm cách nào để bỏ qua mọi hình ảnh khác? Tôi muốn phân tích cú pháp một tập hợp con - in-1, in-3, in-5, v.v. - Mike Robinson
@MikeRobinson convert -append `counter=0; for x in in-*; do if [[ $(($counter % 2)) == 0 ]]; then echo $x; fi; counter=$((counter + 1)); done` out.jpg nên làm công việc. - gozzilli
@peth: Câu trả lời của bạn bắt đầu bằng ví dụ convert lệnh có -append  trước tên tệp đầu vào. Một người dùng ẩn danh đã thêm ví dụ +append  sau tên tệp đầu vào. Cả hai đều hợp lệ? Thứ tự có ý nghĩa không? - Scott