2009-11-24 26 views
47

Bắt đầu với ImageMagic và cố gắng tìm cách để thực hiện việc này ... Nếu hình ảnh có chiều cao nhỏ hơn 50 pixel hoặc rộng 50 pixel, tôi muốn đặt nó (un-scaled) ở trung tâm ngang/dọc của canvas mới 50x50 pixel trên nền trắng - và lưu ảnh đó làm hình ảnh mới. Bất cứ ai biết nếu điều này là có thể với ImageMagick? Cảm ơn!Sử dụng ImageMagick để đặt hình ảnh bên trong canvas lớn hơn

+0

Bạn đang sử dụng API nào? – John

Trả lời

3

Xem cutting and bordering cho một số lượng lớn ví dụ. Dưới đây là một cách đơn giản bạn có thể thực hiện:

convert input.png -bordercolor Black -border 5x5 output.png 

Tất nhiên, bạn sẽ cần tính kích thước đường viền để thêm (nếu có) dựa trên kích thước của hình ảnh đầu vào. Bạn đang sử dụng API ImageMagick hay chỉ là công cụ dòng lệnh?

+0

Đó có thể không phải là giải pháp cho vấn đề, nhưng +1 vì nó đã giúp tôi tạo ra hình ảnh 9patch. :) – unexist

1

Bạn có thể sử dụng single composition để thực hiện việc này. Vì vậy, nó sẽ giống như thế này:

convert -size 50x50 xc:white null: (my_image.png -coalesce) -gravity Center -layers Composite -layers Optimize output.png

3

Tôi cố gắng này:

convert test.jpg -resize 100x100 -background black -gravity center -extent 100x100 output.png 
95

tôi đã sử dụng -extent để làm điều này:

convert input.jpg -gravity center -background white -extent 50x50 output.jpg 
+10

như đối với tôi, trọng lực nên được đặt trước '-extent':' chuyển đổi bg.png -gravity center -extent 640x960 -background trắng ../ mặc định @ 2x.png' – Cfr

+5

... và cũng '-background' phải được đặt trước '-extent'. Trong ví dụ trên, nó hoạt động như nền được đặt màu trắng theo mặc định – theta

+0

Tôi đã cập nhật ví dụ, cảm ơn! – Jared

1

Để chỉnh sửa hình ảnh nguồn bạn cần để sử dụng mogrify:

mogrify -gravity center -background white -extent 50x50 source.jpg 
3

Tôi muốn làm như vậy, ngoại trừ thu nhỏ hình ảnh xuống 70% bên trong. Tôi đã sử dụng điều này:

convert input.png -resize 70%x70% -gravity center -background transparent -extent 72x72 output.png 

Không chính xác những gì được yêu cầu nhưng hy vọng nó sẽ giúp ai đó;).

3

Tôi đã từng sử dụng mã này để đặt hình ảnh ở giữa canvas mới với nền trắng. hy vọng điều này sẽ giúp bạn

convert -background white -gravity center your_image.jpg -extent 50x50 new_image.jpg 
Các vấn đề liên quan