Tìm và xóa tất cả các ảnh bên dưới một ngưỡng kích thước nhất định


4

Vì vậy, tôi đã bị sập ổ cứng của người thân và tôi đã sử dụng photorec để tìm kiếm các tệp rõ ràng nhất để giữ lại (may mắn là họ chỉ có hình ảnh trên máy tính, mọi thứ khác đều được đồng bộ hóa trên đám mây, như email) một thư mục mẹ với 208 thư mục con của tất cả các tệp PNG và JPG từ ổ đĩa cũ. Rõ ràng rất nhiều sẽ là "hình ảnh hệ điều hành và ứng dụng" (thanh công cụ, hình ảnh mẫu, hình thu nhỏ, bộ đệm hệ thống) và một số sẽ là "ảnh gia đình".

Nếu tôi có thể tìm một số cách để tìm tất cả bên dưới một kích thước nhất định (tốt nhất là rộng 300px) thì việc sắp xếp phần còn lại sẽ * dễ dàng.

Làm cách nào tôi có thể sử dụng iPhoto hoặc Spotlight hoặc thứ gì đó để tự động làm điều này? Tôi cũng mở các tập lệnh bằng cách sử dụng các thư viện (bia có lẽ dễ cài đặt), nếu một tập lệnh nào đó có thể được trỏ đến.

* những lời cuối cùng nổi tiếng

Câu trả lời:


7

Bạn có thể sử dụng thiết bị đầu cuối để làm điều này. Lệnh sau sẽ hoạt động:

find /path/to/the/folder \
  -name "*.jpg" \
  -exec bash -c "sips -g pixelHeight -g pixelWidth {} | grep -E ' [12]?[0-9]{0,2}$' >/dev/null" \;\
  -print 

Lệnh đó sẽ tìm tất cả các tệp JPEG /path/to/the/foldercó chiều rộng hoặc chiều cao từ 1 đến 299 pixel.

Thay thế /path/to/the/folderbằng đường dẫn thực tế đến thư mục của bạn.

Bạn có thể thay đổi "*.jpg"để "*.gif"tìm các file GIF để thay thế.

Bạn có thể thay đổi [12]?[0-9]{0,2}để thay đổi kích thước của hình ảnh bạn muốn xác định vị trí. Ví dụ: để tìm ảnh nhỏ hơn 500 pixel, hãy sử dụng[1234]?[0-9]{0,2}

Nếu bạn muốn xem lại những hình ảnh mà lệnh này tìm thấy, hãy sử dụng:

find /path/to/the/folder \
  -name "*.jpg" \
  -exec bash -c "sips -g pixelHeight -g pixelWidth {} | grep -E ' [12]?[0-9]{0,2}$' >/dev/null" \; \
  -exec mv {} /path/to/some/other/folder \; 

Thay thế path/to/some/other/folderbằng thư mục bạn muốn các tệp được di chuyển đến và lệnh đó sẽ di chuyển các tệp mà nó tìm thấy ở đó.


Cách thức hoạt động như sau:

Các sipslệnh là hệ thống xử lý hình ảnh kịch bản . Lệnh terminal sips -g pixelHeight -g pixelWidth some.jpgsẽ in ra chiều rộng và chiều cao của tệp JPEG.

Các findlệnh, như người ta có thể mong đợi, tìm tập tin. -execthông qua find findđể thực hiện lệnh được chỉ định và chỉ trả về các tệp mà lệnh trả về kết quả thành công.

Lệnh bash -c "sips -g pixelHeight -g pixelWidth {} | grep -E ' [12]?[0-9]{0,2}$'gọi shell, chạy sipsđể lấy kích thước hình ảnh, rồi chạy grep, tìm kiếm văn bản, yêu cầu greptìm kiếm một 1hoặc a 2theo sau từ 0 đến 2 chữ số ( 0thông qua 9). Đây là một biểu thức chính quy và nó khớp với các số (chuỗi) 1thông qua299


1

Trong Aperture bạn có thể làm điều này. Và nhiều hơn nữa!

Bước 1

  1. Nhập tất cả các tệp vào Aperture.
  2. Sử dụng xem danh sách.
  3. Nhấp vào tiêu chí kích thước hình ảnh để sắp xếp theo tiêu chí đó. Lưu ý pixel dimensioncó lẽ là phương pháp tốt nhất để sử dụng.

  4. Chọn tất cả các tập tin dưới kích thước tối thiểu của bạn.

  5. Xóa bỏ

Bây giờ cho bước 2 giả sử đây là những bức ảnh gia đình.

  1. Bật nhận dạng khuôn mặt trong Khẩu độ, gán tên cho tất cả các khuôn mặt dễ nhận biết.
  2. Đợi cho đến khi thư viện được xử lý. Việc này có thể mất một lúc tùy thuộc vào số lượng tệp.
  3. Bây giờ bạn có thể sắp xếp theo khuôn mặt. (có lẽ tạo một album thông minh cho mỗi khuôn mặt)
  4. Chọn tất cả các hình ảnh có chứa một khuôn mặt cụ thể.
  5. Batch thay đổi siêu dữ liệu ( shift+ cmd+ b), thêm một từ khóa phù hợp cho mỗi khuôn mặt.

Bây giờ bạn có thể xuất các tệp của mình vào các thư mục phù hợp tùy thuộc vào người trong mỗi thư mục. Cộng với một thư mục của các tập tin không có ai trong đó.

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.