Alfred i optymalizacja zdjęć
Na stronie iMaga staramy się wstawiać grafiki w wysokiej jakości. Jednocześnie nie chcemy, by zajmowały one dużo miejsca. W takiej sytuacji pomocna jest aplikacja ImageOptim.
Zaraz, zaraz… Przecież to seria o Alfredzie, ktoś mógłby powiedzieć. Łącząc możliwości tych dwóch aplikacji możemy przyspieszyć proces optymalizacji zdjęć.
Teoretycznie workflow Alfreda mogłaby sprowadzić się do bardzo prostych elementów — File Action oraz Open File ze wskazaniem na ImageOptim, czyli wszystkie wskazane pliki otwierane byłyby w tejże aplikacji. Jest tylko jeden szczegół. Tak wywołany program po ukończeniu procesu optymalizacji pozostaje nadal aktywny. Nie posiada preferencji, która wymuszałaby zakończenie pracy aplikacji po wykonaniu zadania.
ImageOptim obsługiwać można jednak również z poziomu powłoki, z Terminala. W takim przypadku, choć graficzna wersja aplikacji i tak się uruchamia, zaraz po zakończeniu optymalizacji jest automatycznie zamykana. Bingo!
Tak wygląda skrypt obsługujący jeden i więcej plików:
ARG="{query}"
if [ ! -d "/Applications/ImageOptim.app" ]; then
osascript -e 'tell application "Alfred 2" to run trigger "NoImageOptim" in workflow "com.mcskrzypczak.imopt" with argument "There is no ImageOptim. Install it to make workflow work"'
else
IFS=$'\t'
PATHRESULT=""
for i in ${ARG[@]}; do
PATHRESULT+=" \"$i\""
done
unset IFS
PATHRESULT=$(echo "$PATHRESULT" | sed -e 's/^[ \t]*//')
osascript -e 'tell application "Alfred 2" to run trigger "NoImageOptim" in workflow "com.mcskrzypczak.imopt" with argument "Please wait. Optimization in progess…"'
echo "/Applications/ImageOptim.app/Contents/MacOS/ImageOptim $PATHRESULT" > ./run.sh
sh ./run.sh
osascript -e 'tell application "Alfred 2" to run trigger "NoImageOptim" in workflow "com.mcskrzypczak.imopt" with argument "Optimization finished!"'
fi
W skrócie — najpierw jest sprawdzane, czy mamy w ogóle zainstalowany ImageOptim, jeśli nie — pojawia się stosowny komunikat. Następnie tworzona jest zmienna, w której znajdują się poszczególne ścieżki do wybranych plików. Potem tworzymy plik run.sh
, w którym zawieramy całą komendę do uruchomienia. Na koniec ten plik uruchamiamy. Po wykonaniu optymalizacji wyświetlany jest komunikat.
Workflow wywołać można na dwa sposoby — poprzez skrót klawiszowy lub File Action.
Workflow Optimize File with ImageOptim możecie pobrać stąd → link.
Komentarze: 2
Chętnie przetestuje chociaż osascript od czasów Yosemite nie została naprawiona i strasznie laguje
chyba brak tego workflow w linku :-/