Encuentre y elimine todas las fotos por debajo de un cierto umbral de tamaño

Entonces, el disco duro de un pariente colapsó, y usé photorec para buscar los archivos más obvios para retener (afortunadamente solo tenían imágenes en la computadora, todo lo demás estaba sincronizado en la nube, como el correo electrónico), así que ahora tengo una carpeta principal con 208 subcarpetas de todos los archivos PNG y JPG de la unidad anterior. Obviamente, muchas serán "imágenes del sistema operativo y de la aplicación" (barras de herramientas, imágenes de muestra, miniaturas, cachés del sistema) y algunas serán "fotos familiares".

Si puedo encontrar alguna manera de encontrar todo por debajo de un cierto tamaño (preferiblemente digamos 300 px de ancho), entonces ordenar el resto debería * ser fácil.

¿ Cómo puedo usar iPhoto o Spotlight o algo para hacer esto automáticamente? También estoy abierto a los scripts que usan bibliotecas fácilmente instaladas (¿preparar quizás?), Si se puede señalar un script de algún tipo.

* últimas palabras famosas

Respuestas (2)

Puedes usar la terminal para hacer esto. El siguiente comando debería funcionar:

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 

Ese comando encontrará todos los archivos JPEG /path/to/the/folderque tengan un ancho o un alto de entre 1 y 299 píxeles.

Reemplace /path/to/the/foldercon la ruta real a su carpeta.

Puede cambiar "*.jpg"a "*.gif"para buscar archivos GIF en su lugar.

Puede cambiar [12]?[0-9]{0,2}para cambiar el tamaño de las imágenes que desea localizar. Por ejemplo, para buscar imágenes de menos de 500 píxeles, utilice[1234]?[0-9]{0,2}

Si desea revisar qué imágenes encuentra este comando, use:

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 \; 

Reemplace path/to/some/other/foldercon la carpeta a la que desea mover los archivos, y ese comando moverá los archivos que encuentre allí.


La forma en que esto funciona es la siguiente:

El sipscomando es el sistema de procesamiento de imágenes programable . El comando del terminal sips -g pixelHeight -g pixelWidth some.jpgimprimirá el ancho y el alto del archivo JPEG.

El findcomando, como era de esperar, encuentra archivos. -execpasado a encontrar le indica findque ejecute el comando especificado y solo devuelva los archivos para los que el comando devuelve un resultado exitoso.

El comando bash -c "sips -g pixelHeight -g pixelWidth {} | grep -E ' [12]?[0-9]{0,2}$'invoca un shell, se ejecuta sipspara obtener el tamaño de la imagen y luego ejecuta grep, que busca texto, solicitando grepbuscar a 1o 2seguido de entre cero y dos dígitos ( 0hasta 9). Esta es una expresión regular y coincide con los números (cadenas) 1hasta299

En Aperture puedes hacer esto. ¡Y más!

Paso 1

  1. Importa todos los archivos a Aperture.
  2. Usa la vista de lista.
  3. Haga clic en un criterio de tamaño de imagen para ordenar por ese criterio. La nota pixel dimensiones probablemente el mejor método a utilizar.

  4. Seleccione todos los archivos por debajo de su tamaño mínimo.

  5. Borrar

Ahora, para el paso 2, suponiendo que se trate de fotos familiares.

  1. Activa el reconocimiento facial en Aperture, asigna nombres a todos los rostros reconocibles.
  2. Espere hasta que se haya procesado la biblioteca. Esto puede demorar un tiempo dependiendo de la cantidad de archivos.
  3. Ahora puedes ordenar por cara. (tal vez cree un álbum inteligente para cada cara)
  4. Seleccione todas las fotos que contengan una cara en particular.
  5. Metadatos de cambio por lotes ( shift+ cmd+ b), agregue una palabra clave adecuada para cada cara.

Ahora puede exportar sus archivos a carpetas adecuadas según quién esté en cada carpeta. Además de una carpeta de archivos sin nadie en ellos.