Thay đổi kích thước hình ảnh thành giá trị chiều cao cụ thể trong ImageMagick?


27

Tôi đã xem xét điều này và không thể tìm thấy một giải pháp dễ thực hiện.

Hiện tại tôi đang làm việc trên một ứng dụng liên quan đến ảnh toàn cảnh. Khi chúng ra khỏi quy trình khâu hàng loạt, kích thước trung bình 18000x4000. Sử dụng ImageMagick, làm cách nào tôi có thể hạ thấp những hình ảnh đó xuống một giá trị chiều cao cụ thể trong khi duy trì tỷ lệ khung hình?

Theo hướng dẫn, convertthao tác cần cả chiều cao và chiều rộng để thay đổi kích thước trong khi vẫn duy trì cùng tỷ lệ khung hình. Những gì tôi muốn là đặt 600 và 1000 trong chức năng thay đổi kích thước tập lệnh hiện có của tôi và có cả hình ảnh có thể xem thường xuyên cũng như kích thước giảm.


IIRC nó sử dụng kích thước nhỏ hơn làm cơ sở cho hoạt động thay đổi kích thước, tức là nếu bạn chỉ định một cái gì đó như 20000x600, nó sẽ sử dụng chiều cao 600 làm cơ sở để tính chiều rộng được chuyển đổi để duy trì tỷ lệ khung hình. Tôi đã làm cho mình rõ ràng?
devius

Có cần phải là ImageMagick không? Các lệnh Phatch có thể được viết kịch bản, lệnh 'fit' thực hiện chính xác những gì bạn đang tìm kiếm. photobatch.wikidot.com/action-fit
Veazer

Câu trả lời:


37

Theo tài liệu của ImageMagick tôi đề nghị sử dụng -geometry x600, trong khi đó x600có nghĩa là hình ảnh mới có chiều cao 600 px với tỷ lệ khung hình tương tự như hình ảnh cũ.


Đối với một hình ảnh duy nhất bạn có thể chạy:

convert input.png -geometry x600 output.png

Nếu bạn muốn chuyển đổi tất cả hình ảnh của một thư mục trong một lần chạy, hãy chuyển sang nó (tức là cd ~/Pictures/panoramas/) và sử dụng

mogrify -geometry x600 *.png

Nhưng hãy cẩn thận với điều đó, vì nó ghi đè lên các tệp hình ảnh gốc . Để tránh điều đó bạn có thể

  1. tạo một thư mục mới ( mkdir ~/Pictures/panoramas/small)
  2. sao chép hình ảnh vào thư mục này ( cp ~/Pictures/panoramas/*.png ~/Pictures/panoramas/small) và
  3. chỉnh sửa hình ảnh trong thư mục mới này ( cd ~/Pictures/panoramas/small && mogrify -geometry x600 *.png).

1

để thay đổi kích thước tất cả các tệp trong một thư mục, có thể sử dụng một cái gì đó như

mogrify -resize 800x1094! * jpg # giữ tỷ lệ khung hình ảnh

--- thay đổi kích thước và mở rộng cho phù hợp


1
Điều này không duy trì tỷ lệ khung hình của hình ảnh nguồn
Rob

1
@Rob nếu bạn muốn giữ tỷ lệ khẩu phần rời khỏi "!" ngoài.
Erick

Cảm ơn @Erick, nó khá cũ nhưng tôi có thể chỉ ra rằng câu trả lời này không trả lời đúng vì OP muốn giữ tỷ lệ khung hình. : D
Rob
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.