Làm thế nào để cắt đường viền / khoảng trắng từ hình ảnh?


52

Tôi có rất nhiều hình ảnh có viền trắng xung quanh chúng. Tôi muốn cắt tất cả các đường viền đó cùng một lúc, tốt nhất là từ dòng lệnh. Tôi tin rằng nó có thể được thực hiện với ImageMagick, nhưng tôi không thể tìm thấy lệnh phù hợp.

Tôi biết rằng nó có thể được thực hiện với chương trình Windows có tên là Irfanview với tùy chọn "Auto crop Border", nhưng tôi đang tìm giải pháp dựa trên dòng lệnh dựa trên Ubuntu và tốt nhất là dựa trên dòng lệnh.


Bạn đã thử Gimp chưa?
Mitch

1
@Mitch Không, tôi không biết rằng Gimp có chế độ hàng loạt. Dù sao, sử dụng ImageMagick Trim đơn giản hơn, vì vậy tôi sẽ ở lại với giải pháp đó.
Rafal

Bản sao thường đề xuất các giải pháp GUI ...
Wilf

Câu trả lời:


65

ImageMagick Trim

Tùy chọn dòng lệnh trimđược sử dụng cùng với converthoặc mogrifycho phép bạn cắt các đường viền có màu giống hệt như các góc của hình ảnh.

Sử dụng:

convert input.png -trim output.png

Các tùy chọn bổ sung -fuzzcũng loại bỏ màu gần các màu góc. Sử dụng tùy chọn +repageđể loại bỏ một khung vẽ (nếu có).

ImageMagick Batch Trim (tìm)

Lệnh trên cho ImageMagick Trim cũng có thể được sử dụng để xử lý hàng loạt hình ảnh trong khi kết hợp với findlệnh:

find ./ -name "pattern" -exec convert {} -trim outputfolder/{} \;

sẽ cắt tất cả các hình ảnh phù hợp với patternmột phần của lệnh và lưu chúng trong thư mục mới có tên outputfolder.

Giả sử hình ảnh là PNG, thì lệnh sẽ như thế này:

find ./ -name "*.png" -exec convert {} -trim outputfolder/{} \;

ImageMagick Batch Trim (mogrify)

Mặc dù findcho phép kiểm soát nhiều hơn nơi các tệp đầu ra sẽ được đặt, nhưng cũng có thể thực hiện tương tự với ImageMagick mogrify:

mogrify -trim *.png

Xin lưu ý rằng không giống như convertvà hoạt động hàng loạt với findconvert mogrify ghi đè lên tất cả các tệp . Tốt nhất là thực hiện sao lưu tất cả các hình ảnh trong thư mục trước khi tiến hành lệnh mogrify.

Lưu ý bên: mogrifycó thể được sử dụng để thực hiện hầu hết các converthoạt động (nếu không phải tất cả) theo lô, trong khi ghi đè lên các tệp gốc.

IrfanView

IrfanView chạy khá độc đáo với Wine . Hãy chắc chắn kiểm tra đầu ra của Irfanview một cách cẩn thận, vì đôi khi nó phá vỡ hình ảnh khi được sử dụng với Wine.


Nó hoạt động. Cảm ơn rât nhiều. Tôi đã thêm thông tin về xử lý hàng loạt hình ảnh với ImageMagick khi findlệnh kết hợp vì nó bị thiếu trong câu trả lời của bạn.
Rafal

9
Tôi đã sử dụng mogrify -trim *.jpgđể cắt tất cả các hình ảnh trong thư mục hiện tại.
Butussy Butkus

1
Điều đó thật tuyệt. Nó giúp tôi tiết kiệm rất nhiều thời gian. TX :)
antmw1361

@BriptButkus Tôi đã chỉnh sửa câu trả lời để bao gồm thông tin đó. Vì một số lý do tôi đã quên mất tùy chọn này trước đó.
Trận đấu

1
Có cách nào để cắt một hình ảnh png dọc theo chiều cao của nó, giữ cho chiều rộng cố định không?
ddas
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.