Cambio de resolución en Automator con SIPS para imágenes JPEG

Como ya he dicho me gusta buscar formas de que las máquinas que ahorren trabajos repetitivos.

Lo último que he intentado es una tarea mediante automator que me sirva para adaptar imágenes para el blog.

Cuando subo alguna imagen si están hechas con la cámara o con el dron suelen ser demasiado grandes y eso hace que «pesen» demasiado en una web.

Esto además de ser perjudicial para el servidor energéticamente es poco eficiente en todos los sentidos, más datos para procesar del lado del servidor, más datos transferidos por la red y más datos a decodificar en local.

Total que me hice un servicio en Automator para convertir las imágenes a una resolución suficiente para poder verlas a casi cualquier tamaño que necesite dentro de la web.

Este primer paso fue sencillo.

Simplemente se coge la acción «Ajustar el tamaño de las imágenes» se le dice el tamaño final que han de tener y listo.

Pero entonces me di cuenta de un pequeño detalle…

Las fotografías de la cámara o del dron tienen una resolución innecesaria para publicarlas en la web.

Todo lo que esté por encima de 72 dpi vuelve a ser inneficaz.

Así que volví a darle una vuelta.

El problema es que no hay una acción en las opciones de automator para poder hacer esta tarea.

El Terminal es amigo de Automator

Como integrar en Automator una acción que no está dentro de las acciones.

Pues con el Terminal…

Después de buscar información al respecto me he encontrado con el comando SIPS.

Y tras algo más de lectura del manual he construido esta secuencia.

sips -s dpiHeight 72 -s dpiWidth 72 "$1"

Con esta llamada lo que hace SIPS es cambiar la resolución vertical y horizontal a 72 dpi del fichero seleccionado.

Y allá que la incluí en una acción para el terminal.

Pero… siempre hay un pero cuando intentas explotar a las máquinas…

Resulta que hay un bug, SIPS no es capaz de cambiar la resolución de las imágenes cuando trata ficheros JPEG.

Funciona estupendamente con todo tipo de archivos, TIFF, PNG, JPEG2000, incluso con PDF, pero con JPEG no…

Casi tiro la toalla cuando pensé que si la máquina es la que iba a hacer el trabajo pues que trabajase un poco más.

Total que construí una nueva secuencia.

Al final lo que he hecho es que coja el JPEG que quiero procesar, lo convierta en PNG, tras esto SIPS le cambia la resolución, le ajusto el tamaño a la medida que quiero y lo guardo como JPEG.

Lo he creado como servicio y lo tengo disponible en el menú contextual del Finder así que funciona estupendamente.

Carpeta automática de conversión de imágenes

Hoy he creado una carpeta automática con Automator que me viene estupendamente.

Me gusta que mis equipos trabajen por mí, que hagan un montón de tareas que si las hiciese de forma manual ocuparían mi tiempo, tiempo que podría dedicar a otras cosas.

Vamos a empezar por el principio

Uso Google Fotos como archivo fotográfico de casa, guardo todas las fotografías y videos que hago con el móvil, pero esto tiene un problema, no hay forma de catalogarlas decentemente.

Google Fotos solamente te deja hacer álbumes pero eso no es muy práctico a la hora de buscar una fotografía de un día concreto, vale que te las agrupa por fechas pero no esta muy elaborado aún.

Prefiero usar la carpeta de Google Fotos dentro de Google Drive, y aquí es donde está parte del problema, es imposible catalogar al enorme número de fotografías que subo a la nube.

No solo las del móvil sino las que hago con cualquier cámara.

El problema es que lo empecé usando un poco a lo bruto y ahora es complicado de arreglar, hay imágenes que no me deja subir porque me dice que ya existen por ejemplo.

Entonces se me ocurrió una idea un poco loca…

Todas las fotografías que se suben normalmente están en formato JPG, pero ¿Que pasa si subo la misma fotografía desde el ordenador en formato PNG?

Pues que lo considera un nuevo fichero y problema solucionado.

El problema viene cuando tienes que transformar miles de fotografías que ya tienes ordenadas en carpetas en tu ordenador, NAS, disco duro o donde quiera que las guardes.

Vale que se puede hacer una acción de Photoshop para que lo haga, pero hacerla recursiva es bastante complicado (y delicado a veces se equivoca y arma unos «sindioses» tremendos).

Total que la solución (al menos en Mac) es usar acciones de carpeta con Automator para hacer una carpeta automática.

Automator es una herramienta que viene con todos los Mac y que permite realizar tareas de forma automática (como su nombre indica).

Creación de nuestra carpeta automática

Lo primero es que Automator trabaja con casi todas las aplicaciones del sistema, en el caso de nuestro invento de hoy vamos a usar Vista Previa.

Vista Previa es una herramienta de OS X superpotente, en muchos casos me evita tener que abrir Photoshop o cualquier otra aplicación de imagen, si por ejemplo lo que quiero es recortar una fotografía, cambiarle el tamaño o cambiarle el formato…

Pues eso, que abrimos Automator y nos encontraremos una pantalla como esta:

Vamos a seleccionar el tipo de documento «Acción de carpeta»

En la parte izquierda seleccionaremos el icono «Fotos» para acceder a las automatizaciones disponibles para imagen desde Vista Previa.

Al seleccionar las opciones disponibles para «Fotos» nos muestra las acciones disponibles, seleccionaremos la acción «Cambiar tipo de imágenes».

Con la acción «Cambiar tipo de imágenes» seleccionada la arrastramos a la parte derecha de la ventana.

Os mostrará la advertencia que veis a continuación.

Leedla detenidamente, lo que os quiere advertir es sobre lo que queréis que la acción haga.

Hay dos opciones:

  • Convertir las imágenes de formato y NO guardar los originales
  • Convertir las imágenes de formato y SI guardar los originales

Si queréis guardar las imágenes originales elegid el botón añadir para que se agregue la acción «Copiar items del Finder» para que haga una copia de cada imagen.

En mi caso voy a seleccionar «No añadir» porque utilizo una carpeta «intermedia» para hacer la conversión de las imágenes y no tocar la ubicación donde las archivo en local.

Una vez seleccionada (en mi caso) la opción de «No añadir» nuestra acción aparecerá en la parte derecha de la ventana.

Ahora hay que elegir el formato de «salida» al que queremos que convierta las imágenes, en mi caso PNG.

Y con esto ya solo nos quedaría elegir la carpeta donde queremos que Automator este atento para convertir las imágenes.

Y con esto habríamos terminado, solo nos quedaría guardar la acción con un nombre para poder recuperarla si necesitamos hacer alguna modificación.

Pues todavía se puede hacer mejor

¿Y qué pasa si tenemos varias carpetas unas dentro de otras que queremos convertir?

Pues que con esta automatización no nos vale.

Hay que currárselo un poco más para descansar más tarde…

Para poder hacer que Automator explore de forma recursiva las carpetas que coloquemos en nuestra carpeta de conversión hay que añadir una cosilla más.

Seleccionaremos «Archivos y carpetas» en la biblioteca.

Y añadiremos la acción «Obtener el contenido de la carpeta».

La añadimos sobre la acción «Cambiar tipo de imágenes» para que quede encima de esta.

Y marcamos la opción «Repetir en cada subcarpeta encontrada» para que busque de forma recursiva dentro de las carpetas que añadamos en nuestra carpeta automática.

Y listo, si no hemos seleccionado la carpeta donde queremos que Automator haga su trabajo, la seleccionamos ahora y guardamos la acción.

Lo siguiente es ponerse cómodo y disfrutar de nuestra carpeta automática y que la máquina trabaje para nosotros…

Como decía aquella publicidad de los años 60…
¡Qué trabaje Ruton!

P. D. Probad antes esta acción con pocas imágenes/carpetas por si hubiese algún error con el manejo de los ficheros.