2015-09-08 24 views
16


Tôi có hơn 1000 hình ảnh trên các độ phân giải khác nhau, (ví dụ: 1234x2122, 4400x5212, v.v.) và tôi muốn chuyển đổi tất cả chúng thành kích thước 100x100 cố định.Imagemagick chuyển đổi cắt và thay đổi kích thước

  1. đầu tiên tôi cần phải thay đổi kích thước hình ảnh giữ tỷ lệ, và nhận được 100xA hoặc AX100, trong đó A> 100 (nó phụ thuộc chiều rộng và chiều cao của hình ảnh, ví rộng một số hình ảnh> chiều cao, và đối với một số chiều cao hình ảnh> chiều rộng) .

  2. Crop hình ảnh này để 100x100 từ trung tâm

Có một câu lệnh chuyển đổi đơn giản, mà tôi có thể sử dụng cho tất cả các hình ảnh của tôi?

+0

có vẻ như những gì bạn muốn làm là tương tự như sau http://www.imagemagick.org/discourse-server/viewtopic.php?t=18545 –

Trả lời

21

Bạn sẽ sử dụng area-fill (^) geometry modifier trên hoạt động -resize để thống nhất quy mô xuống. Để cắt xén trung tâm, -extent với -gravity Center sẽ hoạt động.

convert input.jpg -resize 100x100^ \ 
        -gravity Center \ 
        -extent 100x100 \ 
     output.jpg 

Cập nhật

Như Mark Setchell chỉ ra trong các ý kiến, các tiện ích mogrify có thể được thừa hưởng để chuyển đổi hàng loạt các mặt hàng.

mogrify -path ./path/to/write/results/ \ 
     -resize 100x100^ \ 
     -gravity Center \ 
     -extent 100x100 \ 
     ./path/to/source/files/* 

reminderNhắc nhở: Mogrify sẽ ghi đè lên tập tin ban đầu với kết quả hình ảnh (s), trừ khi bạn thiết lập các thông số -path.

+0

Có phiếu bầu của tôi :-) Có lẽ đề cập đến 'mogrify' nếu OP có hơn 1000 hình ảnh? –

Các vấn đề liên quan