2 votos

Convierte por lotes BMP a TIFF y JPEG, y luego mueve las imágenes convertidas a las carpetas respectivas

Estoy tratando de modernizar un flujo de trabajo de escaneo de películas y necesito alguna orientación sobre cómo automatizar mis tareas de manera más eficiente.

Así que permítanme primero describir la situación y el flujo de trabajo que necesito.

El escáner de película produce una carpeta con el nombre del número de trabajo (por ejemplo, 2021_1234) con los escaneos de película reales (.bmp) junto con los archivos de caché/metadatos que no tienen ninguna utilidad (mostrados aquí como .xx y .zz). Un ejemplo de directorio es el siguiente:

~/2021_1234/
    01.xx
    02.xx
    03.xx
    01.zz
    02.zz
    03.zz
    01.bmp
    02.bmp
    03.bmp

Necesito que el resultado final siga esta estructura:

~/2021_1234/
    /2021_1234-TIFF/
        01.tiff
        02.tiff
        03.tiff
    /2021_1234-JPEG/
        01.jpg
        02.jpg
        03.jpg

Básicamente, hay que eliminar los archivos de metadatos inútiles y convertir los archivos .bmp en archivos .tiff y .jpeg en sus propias subcarpetas con el número de trabajo.

Lo ideal sería incluir también la compresión LZW para la conversión a .tiff si es posible.

Actualmente estoy usando una combinación de copiar/pegar/borrar manualmente, junto con 2 aplicaciones de Automator, 1 para la conversión de .jpeg y .tiff. Sólo estoy utilizando un básico Obtener los elementos del buscador especificados junto con Cambiar el tipo de imágenes .

Funciona, pero no es perfecto, ya que aún hay que realizar muchos pasos manuales. Especialmente cuando tengo que repetir todos los pasos para varios trabajos.

La solución ideal me permitiría simplemente arrastrar una o varias carpetas de trabajos a una aplicación de Automator y que ésta hiciera toda la conversión de imágenes, la creación de subcarpetas y la eliminación de archivos innecesarios sin ninguna intervención por mi parte.

Sin embargo, parece que no puedo encontrar una manera de hacer los otros pasos dentro de Automator, y me confundo bastante cuando miro los ejemplos de bash scripts que utilizan sips. Muchas de las soluciones que he visto en línea sólo resuelven una parte del problema que estoy enfrentando (por ejemplo, sólo la conversión de la imagen, o sólo la creación de la carpeta), y estoy teniendo problemas para entender el lenguaje de secuencias de comandos correctamente para combinarlos todos juntos.

Cualquier ayuda con esto sería muy apreciada.

Gracias

2voto

user3439894 Puntos 5883

El ejemplo shell script código que se muestra a continuación, puede utilizarse como Automatizador flujo de trabajo creado como un Aplicación o Servicio/Acción Rápida utilizando un Ejecutar Shell script acción con ajuste Pasa la entrada: [como argumentos] y sustituyendo el valor por defecto código con ella, como se muestra en las imágenes más abajo.

Para cada carpeta se ha dejado caer sobre el Automatizador flujo de trabajo creado como un Aplicación El ejemplo shell script código hace lo siguiente:

  • Cambios directorio en la caída carpeta .
  • Borra el .xx y .zz archivos dentro.
  • Hace que el Número de trabajo-JPEG y Número de trabajo-TIFF carpetas ,
    Por ejemplo, 2021_1234-JPEG y 2021_1234-TIFF .
  • Crea un .jpg tipo archivo y .tiff tipo archivo de cada .bmp tipo archivo en sus respectivos carpetas .

    for dir in "$@"; do

    [ -d "${dir}" ] || continue
    [ -w "${dir}" ] || continue
    cd "${dir}" || exit
    rm *.xx *.zz
    dn="${dir##*/}"
    mkdir -p "${dn}-JPEG" "${dn}-TIFF"
    
    for file in *.bmp; do
        sips --setProperty format jpeg "${file}" -o "${dn}-JPEG/"
        sips --setProperty format tiff --setProperty formatOptions lzw "${file}" -o "${dn}-TIFF/"
    done

    done


Para utilizar el ejemplo shell script código como Automatizador flujo de trabajo creado como Servicio/Acción Rápida , set El flujo de trabajo recibe las [carpetas] actuales en el [Finder] como se muestra en la segunda imagen de abajo.

Entonces en Buscador Seleccione el objetivo carpeta(s) y Haga clic con el botón derecho del ratón en seleccionando el Servicio/Acción Rápida de la Servicios menú de contexto .


Comprender la shell script :

  • for dir in "$@"; do -- Para cada carpeta seleccionada o eliminada, haga lo siguiente:
  • [ -d "${dir}" ] || continue -- Se asegura de que el Buscador artículo se ha dejado caer o se ha seleccionado es un directorio o continuar con el siguiente artículo .
  • [ -w "${dir}" ] || continue -- Se asegura de que el Buscador artículo se ha eliminado o se ha seleccionado es escribible o continuar con el siguiente artículo .
  • cd "${dir}" || exit -- Cambios directorio a la baja o seleccionada carpeta o sale del shell script para evitar el procesamiento erróneo de los restantes código .
  • rm *.xx *.zz -- Borra todo .xx y .zz archivos dentro del "${dir}" directorio .
  • dn="${dir##*/}" -- Usos expansión de los parámetros de la cáscara para obtener el nombre del directorio parte de la nombre de ruta completamente calificado de la carpeta se ha dejado caer o se ha seleccionado. En realidad no es necesario y podría haber utilizado simplemente "${dir##*/}" a través del resto de la código Sin embargo, creo que hace que el resto código más fácil de leer.
  • mkdir -p "${dn}-JPEG" "${dn}-TIFF" -- Hace que el Número de trabajo-JPEG y Número de trabajo-TIFF directorios , por ejemplo, 2021_1234-JPEG y 2021_1234-TIFF .
  • for file in *.bmp; do -- Para cada .bmp tipo archivo haz lo siguiente:
  • sips --setProperty format jpeg "${file}" -o "${dn}-JPEG/" -- Crear un .jpg tipo archivo de cada .bmp tipo archivo en el Número de trabajo-JPEG Por ejemplo, 2021_1234-JPEG directorio .
  • sips --setProperty format tiff --setProperty formatOptions lzw "${file}" -o "${dn}-TIFF/" -- Crear un .tiff tipo archivo de cada .bmp tipo archivo con la solicitud de LZW compresión, en el Número de trabajo-TIFF Por ejemplo, 2021_1234-TIFF directorio .

Automator workflow as an Application

Automator workflow as a Service/Quick Action

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X