Mastodon
Zdjęcie okładkowe wpisu Alfred i optymalizacja zdjęć

Alfred i optymalizacja zdjęć

2
Dodane: 9 lat temu

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.

Maciej Skrzypczak

Użytkownik sprzętu z nadgryzionym jabłkiem, grafik komputerowy, Redaktor iMagazine.pl. Mastodon: mcskrzypczak@c.im

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 2