Encuentre y elimine todas las fotos de un tamaño determinado

4

Entonces, tuve un colapso en el disco duro de un familiar, y he usado photorec para buscar los archivos más obvios para retener (afortunadamente, solo tenían imágenes en la computadora, todo lo demás estaba en la nube, como el correo electrónico), por lo que ahora tengo una carpeta principal con 208 subcarpetas de todos los archivos PNG y JPG de la unidad anterior. Obviamente, mucho será "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 forma de encontrar todas las que se encuentran debajo de un tamaño determinado (preferiblemente de 300px de ancho), 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 utilizan bibliotecas fácilmente instaladas (¿quizás Brew?), Si se puede señalar un script de algún tipo.

* últimas palabras famosas

    
pregunta jcolebrand 09.04.2013 - 20:58

2 respuestas

7

Puedes usar el 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 en /path/to/the/folder que tienen un ancho o una altura de entre 1 y 299 píxeles.

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

Puedes cambiar "*.jpg" a "*.gif" para encontrar archivos GIF en su lugar.

Puede cambiar [12]?[0-9]{0,2} para cambiar el tamaño de las imágenes que desea ubicar. Por ejemplo, para buscar imágenes de menos de 500 píxeles, use [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/folder con la carpeta a la que desea mover los archivos, y ese comando moverá los archivos que encuentre allí.

La forma en que funciona esto es la siguiente:

El comando sips es el sistema de procesamiento de imágenes con scripts . El comando de terminal sips -g pixelHeight -g pixelWidth some.jpg imprimirá el ancho y el alto del archivo JPEG.

El comando find , como se podría esperar, encuentra los archivos. -exec pasado para buscar le dice a find que ejecute el comando especificado y solo devuelva los archivos para los cuales 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, ejecuta sips para obtener el tamaño de la imagen, y luego ejecuta grep , que busca texto, pidiendo a grep que busque 1 o 2 seguido de entre cero y dos dígitos ( 0 hasta 9 ). Esta es una expresión regular y coincide con los números (cadenas) 1 hasta 299

    
respondido por el Josh 09.04.2013 - 21:22
1

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

Paso 1

  1. Importar todos los archivos en Aperture.
  2. Usa la vista de lista.
  3. Haga clic en un criterio de tamaño de imagen para ordenar según ese criterio. Nota: pixel dimension es probablemente el mejor método para usar.

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

  5. Borrado

Ahora, para el paso 2, asumiendo que estas son fotos familiares.

  1. Activa el reconocimiento facial en Aperture, asigna nombres a todos caras reconocibles.
  2. Espere hasta que la biblioteca haya sido procesada. Esto puede llevar un tiempo. dependiendo del número de archivos.
  3. Ahora puedes ordenar por cara. (Tal vez cree un álbum inteligente para cada cara)
  4. Selecciona 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 dependiendo de quién esté en cada carpeta. Más una carpeta de archivos sin nadie.

    
respondido por el Dickon Whitehead 02.07.2013 - 15:37

Lea otras preguntas en las etiquetas