Tworzę obieg pracy Automatora, który używa akcji skryptu powłoki do przetwarzania wybranych obrazów za pomocą polecenia composite imagemagick. Tylko że mam problemy z uruchomieniem. Zgodnie z wynikami, które otrzymuję, gdy uruchamiam przepływ pracy, wszystko działa, ale wiem, że nie wynika to z faktu, że zmiany, których oczekuję w folderze obrazów, nie są obecne. Wiem, że polecenie imagemagick, którego używam, jest prawidłowe, ponieważ działa poprawnie z konsoli. (Powtórzyłem echo komendy złożonej na wyjściu i skopiowałem ją do sesji terminalu. Działa jak urok). BTW: Przepływ pracy dla przetwarzania zanikania filmu, który stworzyłem. Tak, wiem, że mógłbym użyć narzędzi wideo, aby osiągnąć to samo, ale te, do których mam dostęp, mogą podnieść jakość obrazu na wyjściu.
Oto skrypt
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
Na początku myślałem, że przyczyną problemu mogą być spacje na ścieżkach, ale usunąłem tę możliwość, przenosząc pliki do ścieżki bez spacji, ale to nie miało żadnego efektu.
Jestem prawie pewien, że problem jest związany z czymś w poleceniu bash, ale w ogóle nie znam basha, to jest mój pierwszy raz pisanie skryptów poleceń bash, ale mam dużą wiedzę na temat skryptów konsoli Windows i nie miałbym problemów sprawiając, że tam zadziała.
Jeśli błąd w skrypcie nie jest wystarczająco oczywisty, aby go wyłapać, czy ktoś zaproponuje metodę debugowania tego, żebym mógł dowiedzieć się, dlaczego obrazy nie są przetwarzane, mimo że skrypt działa bezbłędnie?
$f
na, f
czy był to tylko błąd transkrypcji? Również twoja kapitalizacja fileName
jest niespójna.
composite
zastąpisz ścieżką bezwzględną (można to ustalić, wykonującwhich composite
na terminalu)?