70

Photoshop najlepszy… nawet w zwykłym zmniejszaniu obrazów

Photoshop jest jednym z najpopularniejszych programów do zaawansowanej obróbki graficznej. W sieci można znaleźć pełno tutoriali, jak i pytań „jak zmniejszyć zdjęcie w Photoshopie, żeby wrzucić na portal społecznościowy lub forum”. Najczęstszą reakcją na wykorzystywanie profesjonalnego programu do prostej czynności jaką jest zmniejszania fotek bywa zniechęcanie do takich zabiegów: „Do tego nie potrzebujesz Photoshopa, użyj […]

Photoshop jest jednym z najpopularniejszych programów do zaawansowanej obróbki graficznej. W sieci można znaleźć pełno tutoriali, jak i pytań „jak zmniejszyć zdjęcie w Photoshopie, żeby wrzucić na portal społecznościowy lub forum”. Najczęstszą reakcją na wykorzystywanie profesjonalnego programu do prostej czynności jaką jest zmniejszania fotek bywa zniechęcanie do takich zabiegów: „Do tego nie potrzebujesz Photoshopa, użyj innego, darmowego programu”. Pytanie, czy tego rodzaju rady są słuszne? Czy faktycznie nie stracimy nic, nawet na takiej prostej czynności, jaką jest zmniejszanie obrazów?

Sam uważałem, że wykorzystywania Photoshopa do najprostszej operacji nie jest dobrym pomysłem. Przede wszystkim nie lubię uzależniać się od rozwiązania, które jest komercyjne, raczej drogie i można je zainstalować na ograniczonej liczbie komputerów, dokładnie na dwóch. Wystarczy, że tymczasowo przesiądę się na inny komputer i jestem jak bez ręki, a winę za to ponosi przyzwyczajenie i brak znajomości alternatywy. Przecież pracując poza domem, ostatnią rzeczą jaką chcę, to gorączkowo poszukiwać zastępstwa i uczyć się jego obsługi. Tak więc powiedzmy to sobie od razu, jeśli ktoś nie posiada licencji Photoshopa, albo nie ma własnego komputera pod ręką z instalacją takowego, to oczywiście, do prostych czynności lepiej wykorzystać darmowe oprogramowanie, ale to niejako przymus zaistniałej sytuacji, a nie dobrowolny wybór.

Dlatego od dawna do zmniejszania obrazów  korzystam z programów dostępnych w sieci za darmo. Jednym z moich ulubionych jest wspominany przeze mnie na łamach Antyweb FastStone Image Viewer. Pod klawiszem F3 ukryta jest funkcja obróbki wsadowej tzw. batch convert. Raz z góry ustalam wielkość grafiki np. do artykułu, dodaje wyostrzanie i gotowe. Następnym razem jak potrzebuję przeskalować grafiki, zaznaczam wszystkie, wciskam F3, czekam kilkanaście lub kilkadziesiąt sekund i gotowe.

Do tej pory żyłem w przeświadczeniu, że korzystanie z małych programów do zmniejszania obrazów jest nie tylko wygodne, ale i szybsze, bo są przecież mniejsze, zwykle kilka MB w porównaniu do setek MB które zajmuje Photoshop, zajmują mniej pamięci, szybciej się uruchamiają. Jednym słowem, do prostszych zadań są po prostu lepsze.

Traf chciał, że robiłem time lapse chmur na niebie (tutaj opisywałem na Antyweb jak coś takiego wykonać samemu) i aby stworzyć 3 minutowy film musiałem wykadrować, zmniejszyć i wyostrzyć prawie sześć tysięcy zdjęć, które zostały wykonane przez trzy godziny z interwałem co dwie sekundy. Pomyślałem, że zaprzęgnę do tego mojego ulubionego FastStone.

Już na początku napotkałem problem, bo proporcje zdjęcia z aparatu są inne, niż proporcje filmu w rozdzielczości Full HD. Dlatego zwykłe zmniejszenie rozdzielczości musiało zostać poprzedzone kadrowaniem, a nie odwrotnie. Niestety FastStone nie pozwala określić kolejności wykonywania operacji (pozawala na to natomiast XnView). Musiałbym rozbić operacje na dwie czynności, najpierw wszystkie zdjęcia wykadrować, potem, w drugim rzucie, zmniejszyć i wyostrzyć.

Zdębiałem jednak, kiedy zobaczyłem czas potrzebny do tej operacji – prawie pięć godzin! I to na jedną turę (przypominam, że operacje musiałem rozbić na dwa przebiegi), żeby stworzyć 3 minutowy film?! O, tak się nie będziemy bawić. Odpaliłem Photoshopa, nagrałem prostą akcję, która wykonywała wszystko za pierwszym razem, nie wspominając nawet o wykorzystaniu znacznie lepszego i bardziej skomplikowanego algorytmu wyostrzania i zapuściłem, niech się robi, przynajmniej bezobsługow0, więc przyjdę an gotowe.

Okazało się, że Photoshop poradził sobie ze wszystkim w niecałą godzinę, przypominam, stosując bardziej zaawansowane algorytmy i oferując lepszy efekt finalny w krótszym niemal pięciokrotnie czasie. A gdyby dodać do tego dwukrotne przepuszczenie fotek przez FastStone, to nawet dziesięciokrotnie szybciej, w każdym razie, dużo szybciej :)

Zacząłem się zastanawiać co może być przyczyną tak dużej różnicy czasu potrzebnego do wykonania zadania. Pierwsze co przyszło mi do głowy, to obsługa procesorów wielordzeniowych. PS bez problemu wykorzystuje wiele rdzeni, a nawet fizycznych procesorów. Skoro mój procesor potrafi obsłużyć 8 wątków jednocześnie, byłby to dobry powód na skrócenie czasu operacji. Z drugiej strony, prostsze programy zwykle ograniczają się do obsługi jednego rdzenia i nie potrafią odpowiednio obciążyć nowoczesny procesor. Zapuściłem więc akcje jeszcze raz i wywołałem zakładkę Wydajność w Menadżerze Zadań.

Czego nie widać na załączonym obrazku? Wyraźnych różnic. Obciążenie procesora jest podobne w obu przypadkach. Najwyraźniej Photoshop przy tak prostych operacjach nie potrzebuje albo nie potrafi obciążyć wszystkich rdzeni, co nie przeszkadza mu w osiągnięciu wielokrotnie większej wydajności. Aż trudno uwierzyć, że optymalizacja kodu tak dużego programu jak PS pozwoliła osiągnąć tak dużą przewagę w stosunku do małego i prostego programu.

Czy to znaczy, że namawiam wszystkich potrzebujących zmniejszyć obrazek w celu wrzucenia go na forum do zakupu Photoshopa? Oczywiście, że nie. Gdyby PS nie był mi potrzebny do innych rzeczy i nie posiadałbym licencji, nie kupiłbym go tylko do zmniejszania fotek. Przemęczyłbym się te kilka godzin dłużej u już, zapomniał o sprawie. Przy zmniejszaniu nie tysięcy, a dziesiątek, czy nawet setek obrazków, różnica potrzebnego czasu nie jest już tak widoczna, a większość z nas zwykle nie zmniejsza tak dużo obrazów na raz.

Poco więc powstał ten tekst? Po to, żeby obalić mit, że Photoshop jest wielkim, ociężałym programem, którego nie warto uruchamiać do prostych czynności, bo to strzelanie z armaty do muchy. Często zyskamy sporo na czasie nawet w najprostszych czynnościach, nie mówiąc o możliwości nagrania wszystkiego co robimy w formie akcji, bez konieczności pisania skryptów, a następnie odtworzenia tych czynności na setkach i tysiącach obrazów bez wysiłku. Te możliwości wykraczają daleko poza ustalenie kolejności wykonywania operacji i obejmują absolutnie każdą czynność wykonywaną w programie, włącznie z np. wyborem miejsca kadrowania, a nie tylko jego proporcji.

Dlatego powracam do wykonywania również prostych czynności w tym zaawansowanym programie do obróbki grafiki. Skróty klawiaturowe, które zdążyły już wejść w krew dodatkowo przyspieszają pracę, a gadaniem o tym, że używam specjalistycznego programu do prostych rzeczy już nie będę się przejmował :) Liczy się w końcu efekt i wygoda pracy.

Nawiasem mówiąc, oto co wyszło z tego zmniejszania fotek. Polecam obejrzeć w 1080p. Jak Grzegorz zauważył na moim profilu G+, aktorów mało, a więc wieje nudą, ale ja się upieram, że w przepływających chmurach jest coś hipnotyzującego, bo nie tylko przesuwają się po niebie, ale również zmieniają kształty, kotłują się, pojawiają i znikają. Trzeba się tylko dobrze przyglądać.