Tôi đang tìm cách hiệu quả nhất để ghép nhiều hình ảnh lại với nhau trong ImageMagick, trên cùng của hình nền, sao cho khoảng cách/khoảng cách giữa các hình ảnh được phủ lên là thích hợp?Kết hợp nhiều hình ảnh trong ImageMagick với các khoảng tương đối (không tuyệt đối)
Tôi đã điều tra việc sử dụng + nối thêm, chuyển đổi -composite và chuyển đổi bằng hợp nhất -page và -layers.
Lệnh sau (convert -composite) hoạt động, nhưng yêu cầu phải tính toán trước các kích thước hình ảnh để xác định độ lệch tuyệt đối. Thực sự, tôi muốn có khoảng cách 10 pixel giữa phần cuối của hình ảnh lớp đầu tiên và bắt đầu của hình ảnh lớp thứ hai, nhưng cách duy nhất tôi có thể thấy để đạt được điều đó là xác định độ lệch tuyệt đối từ góc trên cùng bên trái của canvas .
convert \
background.jpg \
first.jpg -gravity Northwest -geometry +10+10 -composite \
second.jpg -geometry +300+10 -composite \
third.jpg -geometry +590+10 -composite \
output.jpg
Tôi đang tìm kiếm một số loại điều hành sao cho ngang bù đắp có thể được giải thích tương ứng với hình ảnh "cuối cùng" trong lớp, vì vậy thay vì quy định cụ thể +300+10
cho hình ảnh thứ hai và +590+10
cho thứ ba, tôi bằng cách nào đó có thể chỉ định một bù đắp +10+10
.
Tôi nghĩ trọng lực sẽ cho phép tôi đạt được điều đó (-gravity Northwest
), giống như cách mà float: left;
hoạt động trong định vị CSS, nhưng điều đó không đúng.
Tôi cũng đã có một số thành công như sau:
convert \
-page +10+10 first.jpg \
-page +300+10 second.jpg \
-page +590+10 third.jpg \
-background transparent \
-layers merge \
layered.png
convert background.jpg layered.png -gravity Center -composite output.jpg
Cả hai kỹ thuật được mô tả yêu cầu trước khi tính hiệu số tuyệt đối, mà là một chút đau đớn. Có cách nào tốt hơn để làm điều này?
Tất cả các hình ảnh đầu vào của bạn cho cùng một quá trình ghép có cùng chiều rộng và chiều cao (và chỉ có thể thay đổi cho lần ghép tiếp theo)? –
Nền là một hình ảnh thực sự, nhưng kích thước của nó sẽ là tĩnh (hoặc ít nhất nó sẽ là một số loại hình ảnh dễ dàng tileable/croppable). –
Các hình ảnh không phải tất cả đều có cùng kích thước. Chúng tôi sẽ hạn chế chúng ở độ cao tối đa và chiều rộng tối đa (được xác định), do đó tùy thuộc vào kích thước của hình ảnh đầu vào, sự ràng buộc này sẽ dẫn đến độ rộng biến đổi. –