Je crée un flux de travail Automator qui utilise l'action shell script pour traiter une sélection d'images avec la commande composite imagemagick. Seulement, j'ai des problèmes pour le faire fonctionner. Selon les résultats que j'obtiens lorsque j'exécute le flux de travail, tout fonctionne ; cependant, je sais que ce n'est pas le cas en raison du fait que les changements que je m'attendrais à voir dans le dossier d'images ne sont pas présents. Je sais que la commande imagemagick que j'utilise est correcte car elle fonctionne correctement depuis la console. (J'ai fait écho de la commande composite à la sortie et l'ai copiée dans une session Terminal. Cela a fonctionné comme sur des roulettes). BTW : Le flux de travail est pour le traitement d'un fondu sur un film en stop motion que j'ai fait. Oui, je sais que je pourrais utiliser des outils vidéo pour réaliser la même chose, mais ceux auxquels j'ai accès gâchent la qualité de l'image à la sortie.
Voici le script
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
J'ai d'abord pensé que la cause du problème pouvait être les espaces dans les chemins, mais j'ai éliminé cette possibilité en déplaçant les fichiers vers un chemin sans espaces, mais cela n'a eu aucun effet.
Je suis presque certain que le problème est lié à quelque chose dans la commande bash, mais je ne connais pas du tout bash, c'est la première fois que j'écris une commande bash scripts, mais je connais très bien le scriptage de la console Windows et je n'aurais aucun problème à faire fonctionner cela là-bas.
Si l'erreur dans le script n'est pas assez évidente à attraper, quelqu'un pourrait-il proposer une méthode pour déboguer cela afin que je puisse comprendre pourquoi les images ne sont pas traitées même si le script s'exécute sans erreur ?