2 votos

¿Cómo obtengo Automator para proceso de imágenes en una secuencia de comandos de ImageMagick?

Estoy haciendo un flujo de trabajo de Automator que utiliza la secuencia de comandos de shell de acción para el proceso de una selección de imágenes con imagemagick comando compuesto. Sólo estoy teniendo problemas para conseguir que va. De acuerdo a los resultados que siento cuando voy a ejecutar el flujo de trabajo, todo está funcionando sin embargo, sé que no es debido al hecho de que los cambios que me gustaría esperar a ver en la carpeta de imágenes no están presentes. Sé que el imagemagick comando que estoy usando es correcta, ya que funciona correctamente desde la consola. (Me hice eco del comando compuesto para la salida y copiado en una sesión de Terminal. Corrió como un encanto). BTW: El flujo de trabajo del procesamiento de un fundido en un stop motion película que hice. Sí sé que yo podría usar herramientas de video para lograr la misma cosa, pero los que tienen acceso a la pata de la calidad de la imagen en la salida.

Aquí está la secuencia de comandos

imagesCount=$#
rate=$(echo "scale=2; 100/$imagesCount"|bc)
percentage=$rate
for f in "$@"; do
    fileName=${f%.*}
    composite -blend "$percentage" -size 1280x720 "$f" xc:black -alpha Set "$fileName-1.jpg"
    percentage=$(echo "scale=2; $percentage+$rate"|bc)
done

Al principio pensé que en la causa del problema puede ser espacios en los caminos, pero he eliminado esta posibilidad por el cambio de los archivos en una ruta sin espacios, pero que no tuvo ningún efecto.

Estoy casi seguro que el problema está relacionado con algo en el comando de bash, pero no sé bash a todos, esta es mi primera vez escribiendo cualquier comando de bash scripts, pero yo soy muy conocedor en la consola de Windows scripting y no tendría problemas para conseguir que esto funcione hay.

Si el error en el script no es lo suficientemente evidente para la captura, alguien propone un método para la depuración de esto, así que puedo averiguar por qué las imágenes no se procesan aunque la secuencia de comandos se ejecuta sin error?

2voto

beroe Puntos 1605

Acabo de hacer todo en la línea de comandos como un script de shell en lugar de utilizar Automator para su lanzamiento. Poner #!/bin/bash como la primera línea, y ejecutarlo como

myscript.sh image*.png

donde image*.png es el conjunto de archivos de imagen que son aparentemente seleccionando en Automator?

Si usted necesita para ejecutar en todos los archivos en una carpeta, que se puede hacer demasiado.

También puede probar el script de automator usando echo ${f%.*} , en lugar de los comandos de sí mismos.

1voto

Reemplazar for $f con for f . for $f in aa; do :; done los resultados en un error, como `$f': not a valid identifier .

También si composite es no en la ruta de acceso, especificar la ruta completa (como /usr/local/bin/composite ).

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