Prywatność i bezpieczeństwo przy kompresji zdjęć online
Przeglądarki od lat potrafią same kompresować obrazy. Wczytany plik trafia do elementu obrazu w pamięci, następnie zostaje narysowany na płótnie (canvas) o docelowych wymiarach, a płótno eksportuje gotowy plik metodą toBlob z zadaną jakością. Cały łańcuch odbywa się lokalnie, bez jednego zapytania sieciowego.
Dla nas oznacza to zerowy koszt transferu i przechowywania, a dla Ciebie coś ważniejszego. Zdjęcia, które nie powinny opuścić urządzenia - skany dokumentów, fotografie dzieci, materiały firmowe, umowy - nie opuszczają go. Większość darmowych kompresorów działa inaczej. Taki kompresor zdjęć przesyła plik na serwer, przetwarza go tam i odsyła wynik, więc kopia Twojego zdjęcia leży przez chwilę na cudzym dysku.
Różnica bywa niewidoczna na co dzień, bo wynik wygląda tak samo, ale gdy kompresujesz skan dowodu albo zdjęcie umowy - a takie pliki trafiają tu częściej, niż można sądzić - ma znaczenie, czy obraz przeszedł przez cudzą infrastrukturę, czy nie wyszedł poza kartę przeglądarki.
Po co kompresować zdjęcia
Zdjęcie prosto z telefonu waży od trzech do dwunastu megabajtów. Cztery takie pliki przekraczają limit załącznika w Gmailu, który wynosi 25 MB, a serwery firmowe bywają ustawione na 10 MB. Skompresowane obrazy po 300 KB można przesłać przez każdą skrzynkę, a odbiorca i tak ogląda je na ekranie w rozdzielczości kilkukrotnie mniejszej od oryginału.
Na stronie internetowej mniejsze pliki skracają czas ładowania. Obrazy odpowiadają zwykle za większość transferu całej strony, więc zejście z dwóch megabajtów do dwustu kilobajtów na zdjęcie skraca oczekiwanie na telefonie w zasięgu LTE z kilku sekund do ułamka sekundy.
Kompresja przydaje się też przed wrzuceniem zdjęć do chmury. Darmowe konta oferują kilka albo kilkanaście gigabajtów, a jeden album z wakacji potrafi zająć połowę tego miejsca. Jeśli chcesz udostępniać zdjęcia rodzinie albo publikować je w sieci, wystarczy kopia o mniejszej wadze; oryginały zostają na dysku.
Jak zmniejszyć rozmiar zdjęcia, czyli wymiary kontra jakość
Najskuteczniejszym sposobem zmniejszenia zdjęcia jest zmiana wymiarów, a nie kompresja. Aparat w telefonie robi dziś zdjęcia o szerokości czterech tysięcy pikseli i więcej, podczas gdy do posta w sieci społecznościowej wystarcza 1600, a do miniatury na stronie 400. Zmniejszenie z 4000 do 1600 pikseli usuwa 84% pikseli i plik chudnie w podobnej proporcji, zanim jeszcze zadziała suwak jakości.
Sama kompresja stratna działa przez odrzucanie informacji, których oko nie zauważa. Przy jakości 85 różnica wobec oryginału jest niewidoczna nawet po powiększeniu, przy 75 widać ją dopiero na dużych gładkich płaszczyznach w rodzaju nieba albo gradientu. Poniżej 60 pojawiają się kwadratowe artefakty i obwódki wokół kontrastowych krawędzi. Domyślne 80 to ustawienie, przy którym prawie nikt nie rozpozna kompresji, a plik jest kilkukrotnie mniejszy.
Zależność między rozmiarem pliku a jakością nie jest liniowa. Zejście z jakości 90 na 80 potrafi zmniejszyć plik o połowę przy utracie jakości, której nie widać, a zejście z 40 na 30 daje już tylko kilka procent wagi i wyraźnie psuje obraz. Dlatego suwak ma sens w górnej części skali, gdzie za każdy oddany punkt dostajesz najwięcej kilobajtów.
Kompresja JPEG, WebP i PNG, czyli jaki format wybrać
JPEG to format stratny stworzony do fotografii, a pliki JPG to dokładnie ten sam format, tylko z krótszym rozszerzeniem. Kompresja JPEG radzi sobie świetnie z płynnymi przejściami tonalnymi, gorzej z ostrym tekstem i jednolitymi płaszczyznami, a przezroczystości nie obsługuje wcale. Za to plików JPEG nie odrzuci żaden program ani żaden telefon.
WebP przy tej samej jakości wizualnej daje pliki o 25-35% mniejsze niż JPEG, obsługuje przezroczystość i tryb bezstratny. Wspiera go każda aktualna przeglądarka, ale starsze programy graficzne i część systemów pocztowych potrafią go nie otworzyć, więc do wysyłki e-mailem bezpieczniejszy pozostaje JPG.
PNG jest bezstratny i dlatego suwak jakości go nie dotyczy. Nadaje się do zrzutów ekranu, grafik z tekstem i logotypów. Obsłuży też obrazy z przezroczystym tłem. Zdjęcie zapisane jako PNG będzie wielokrotnie większe niż to samo zdjęcie w formacie JPG, więc jeśli plik PNG waży kilka megabajtów, konwersja na WebP jest najprostszym sposobem, żeby to naprawić.
Jak zmniejszyć rozmiar pliku do zadanej liczby KB lub MB
Formularze urzędowe i platformy aukcyjne stawiają twardy limit, na przykład 200 KB na zdjęcie. Ręczne trafienie w taki próg to zgadywanie, bo jakość 70 daje 240 KB, jakość 60 daje 150 KB, a chodzi o najwyższą jakość mieszczącą się pod progiem.
Narzędzie robi to metodą połowienia przedziału. Zaczyna od jakości ze środka zakresu, sprawdza rozmiar wyniku i zawęża przedział. Jeśli plik jest za duży, szuka niżej, jeśli za mały, wyżej, i zapamiętuje najlepszy wynik mieszczący się w limicie. Osiem prób wystarcza, żeby trafić w próg z dokładnością poniżej jednego punktu jakości. Kiedy nawet jakość 1 nie schodzi do zadanej liczby kilobajtów, dostajesz najlepszy osiągalny wynik i komunikat, a wtedy zmniejsz wymiary zdjęcia.
Ograniczenia i metadane EXIF
Limit 25 MB na plik nie jest kaprysem. Zdjęcie tej wagi po zdekodowaniu zajmuje w pamięci kilkaset megabajtów jako surowa mapa pikseli, bo płótno przechowuje cztery bajty na piksel. Na telefonie przekroczenie tej granicy kończy się cichym przerwaniem pracy karty, bez komunikatu. Z tego samego powodu obrazy przetwarzamy kolejno.
Przetworzone zdjęcie nie zawiera metadanych EXIF oryginału. Znika model aparatu, ustawienia ekspozycji, data wykonania i współrzędne GPS. To wynika ze sposobu, w jaki działa płótno, ale traktujemy to jako zaletę. Zdjęcie publikowane w sieci rzadko powinno nieść ze sobą adres, pod którym powstało. Jeśli metadane są Ci potrzebne, zachowaj oryginał.
Zmiana wymiarów i kadru, konwersja formatu i dobór stopnia kompresji to wszystko, co ta strona robi ze zdjęciem. Żeby edytować kolory, usunąć obiekt z tła albo poprawić ekspozycję, sięgnij po edytor graficzny; kompresor zdjęć takiej roboty nie wykona.