Làm cách nào để thay đổi kích thước hàng loạt tất cả hình ảnh trong một thư mục (bao gồm cả các thư mục con)?


11

Tôi có bộ sưu tập lớn, 12GB, trên máy chủ, có đầy đủ hình ảnh trong các thư mục con khác nhau. Những tập tin này quá lớn và không được sử dụng ở độ phân giải đầy đủ. Tôi cần thay đổi kích thước tất cả các hình ảnh xuống tới 820px (giữ tỷ lệ). Vì vậy, câu hỏi của tôi là - làm thế nào tôi có thể tạo một số loại kịch bản thu thập dữ liệu sẽ thay đổi kích thước tất cả các hình ảnh lớn hơn 820px và lưu chúng lại ghi đè lên tệp gốc?

Hy vọng bạn có thể giúp tôi :-) Cảm ơn bạn trước.


3
find . -name "*.jpg" -exec mogrify -resize 820x {} +sẽ làm tất cả; nếu bạn không muốn xử lý những cái "nhỏ hơn 820px", có một số tùy chọn ở đây .
don_crissti

Câu trả lời:


13

Công cụ ImageMagick chuyển đổi hoặc mogrify sẽ thực hiện công việc.

Bạn có thể lấy chúng thông qua trình quản lý gói của bạn hoặc nguồn / rpms tại đây: http://www.imagemagick.org/script/binary-release.php#unix

Cách sử dụng cơ bản:

$ mogrify -resize 820x *.jpg

Nếu bạn cần đệ quy:

find . -name '*.jpg' -execdir mogrify -resize 820x {} \;

Tôi không nghĩ rằng "rộng 820px (giữ tỷ lệ)" có nghĩa là "thay đổi kích thước thành 820x820". Nó khá giống với "rộng 820px và bất cứ tỷ lệ nào - cao";) Thêm vào đó, điều này không xử lý đệ quy.
Erathiel

1
Điểm tốt. Đã chỉnh sửa!

Nếu bạn muốn làm cho nó chỉ thay đổi kích thước nếu chúng lớn hơn kích thước đã đặt và vẫn giữ tỷ lệ, bạn có thể thay đổi nó thành: find . -name '*.jpg' -execdir mogrify -resize '820x620>' {} \;
OpensaurusRex 8/12/18

2
Thận trọng: Điều này sẽ ghi đè lên hình ảnh hiện tại của bạn.
sudo


5

Sử dụng convertđể thực hiện công việc.

convert -resize "1024x768>" origIMG destIMGsẽ thay đổi kích thước origIMG thành 1024x768 giữ tỷ lệ khung hình và chỉ thay đổi kích thước nếu hình ảnh lớn hơn 1024, lưu trữ hình ảnh mới trong DestIMG. Sau đó, bạn có thể di chuyển DestIMG về bản gốc.

Sử dụng một vòng lặp để đi qua tất cả các thư mục của bạn hoặc sử dụng find.


Làm thế nào bạn sẽ sửa đổi lệnh này để ghi đè lên hình ảnh gốc với hình thu nhỏ, trong khi đệ quy với find?
Simon East
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.