Jak kompresować obrazy bez utraty jakości
Praktyczny przewodnik po zmniejszaniu obrazów z zachowaniem ostrości: co naprawdę oznacza jakość, właściwe ustawienia, zmiana rozmiaru, formaty i błędy, których należy unikać.
„Kompresuj obrazy bez utraty jakości” to jedna z najczęściej wyszukiwanych fraz w sieci, a zarazem jedna z najbardziej źle rozumianych. Szczera odpowiedź brzmi: idealna kompresja bez żadnych zmian jest możliwa tylko w wąskich przypadkach. Ale odpowiedź praktyczna jest znacznie bardziej zachęcająca: przy właściwym podejściu można rutynowo zmniejszyć obraz do jednej trzeciej lub jednej dziesiątej jego rozmiaru, a wynik będzie wyglądał identycznie dla ludzkiego oka. Ten przewodnik wyjaśnia, jak to zrobić i co naprawdę oznacza „bez utraty jakości”.
Co naprawdę oznacza „bez utraty jakości”
Za słowem jakość kryją się dwie różne idee, a ich mylenie to miejsce, w którym większość osób się myli:
- Wierność matematyczna— czy każdy piksel jest zachowany bit po bicie. Gwarantuje to tylko kompresja bezstratna.
- Jakość percepcyjna — czy ty jesteś w stanie dostrzec różnicę, patrząc na obraz w normalny sposób. To właśnie ma znaczenie dla zdjęć na stronie internetowej, w dokumencie czy załączonych do wiadomości e-mail.
Formaty stratne, takie jak JPEG i WebP, odrzucają dane, które ludzki układ wzrokowy słabo zauważa — subtelne różnice koloru i drobne szczegóły. Dobrze wykonane, pozbywa się to bajtów, których i tak nigdy byś nie zobaczył. Realistycznym celem nie jest więc zero zmian; jest nim zero widocznych zmian. Jeśli naprawdę potrzebujesz każdego piksela nienaruszonego, przejdź do sekcji o kompresji bezstratnej poniżej.
Wybierz rozsądny poziom jakości (70–85)
Niemal każdy kompresor obrazów udostępnia suwak jakości, zwykle od 0 do 100. Ludzie zakładają, że wyższa wartość jest zawsze lepsza, ale krzywa cechuje się gwałtownie malejącymi zyskami. Skok z jakości 100 do 90 często usuwa 40–60% rozmiaru pliku bez zauważalnej różnicy, podczas gdy skok z 60 do 50 oszczędza niewiele i zaczyna wprowadzać widoczne, blokowe artefakty.
Dla większości fotografii optymalny zakres to jakość od 70 do 85. W tym przedziale zachowujesz odcienie skóry, gradienty i krawędzie w czystej formie, jednocześnie pozbywając się większości wagi. Przydatny sposób pracy to zacząć w okolicach 80, spojrzeć na wynik w pełnym rozmiarze i obniżać jakość tylko wtedy, gdy plik nadal musi być mniejszy. Ponieważ narzędzia takie jak nasz kompresor JPEG i kompresor WebP działają w całości w Twojej przeglądarce, możesz ponownie wyeksportować obraz przy kilku ustawieniach i porównać natychmiast, bez przesyłania czegokolwiek.
Zmień wymiary — największa dźwignia
Oto najczęściej pomijana sztuczka: większość obrazów jest znacznie większa, niż kiedykolwiek zostanie wyświetlona. Nowoczesny telefon robi zdjęcia o szerokości 4000 pikseli lub więcej, ale wpis na blogu wyświetla je może przy 1200 pikselach, a podpis w e-mailu lub miniatura potrzebują zaledwie kilkuset. Przechowywanie wszystkich tych dodatkowych pikseli to czyste marnotrawstwo.
Ponieważ rozmiar pliku skaluje się wraz z powierzchniąobrazu, zmniejszenie o połowę zarówno szerokości, jak i wysokości redukuje liczbę pikseli do jednej czwartej. Zmiana rozmiaru zdjęcia o szerokości 4000 pikseli do 1600 pikseli na potrzeby sieci może zmniejszyć plik bardziej niż jakiekolwiek ustawienie jakości — a ponieważ usuwasz piksele, których i tak nigdy byś nie zobaczył na ekranie, widoczna jakość przy rozmiarze wyświetlania pozostaje nienaruszona. Ustaw najdłuższą krawędź na to, czego strona faktycznie potrzebuje, za pomocą narzędzia do zmiany rozmiaru obrazów przed dotknięciem suwaka jakości lub zamiast tego.
Wybierz odpowiedni format dla treści
Wybrany format całkowicie zmienia rachunki. Właściwy wybór zależy od tego, czym obraz jest:
- Fotografie i realistyczne obrazy: użyj JPEG lub jeszcze lepiej WebP, który zazwyczaj tworzy pliki o 25–35% mniejsze niż JPEG przy tej samej jakości wizualnej.
- Logo, ikony, zrzuty ekranu, grafika liniowa i wszystko, co zawiera tekst lub ostre krawędzie: użyj PNG. Formaty stratne rozmazują ostre krawędzie w rozmyte halo; bezstratny PNG zachowuje je jak ostrze brzytwy.
- Obrazy wymagające przezroczystości: PNG lub WebP, ponieważ JPEG nie potrafi przechowywać kanału alfa.
WebP jest już obsługiwany przez każdą aktualną przeglądarkę, więc dla sieci jest bezpiecznym, bardzo wydajnym ustawieniem domyślnym. Przewodnik web.dev po serwowaniu obrazów WebP to dobre źródło, jeśli chcesz zgłębić kompromisy.
Kiedy naprawdę potrzebujesz kompresji bezstratnej
Czasem rzeczywiście musisz zachować każdy piksel — archiwum główne, diagram z drobnym tekstem albo zasób, który będziesz dalej edytować. W takim przypadku użyj kompresji bezstratnej, która zmniejsza plik wyłącznie poprzez bardziej efektywne zakodowanie go, bez żadnej zmiany w samym obrazie.
W przypadku PNG w szczególności duża część rozmiaru pliku wynika z tego, jak koder zdecydował się upakować dane, a nie z samego obrazu. Optymalizatory bezstratne (popularny silnik OxiPNG to dobry przykład) ponownie pakują skompresowany strumień PNG i usuwają zbędne metadane, oszczędzając często 10–30% przy gwarancji identycznych pikseli. To najbliższe prawdziwemu darmowemu obiadowi, co można znaleźć w kompresji obrazów: mniejszy plik, ten sam obraz bajt w bajt.
Unikaj ponownej kompresji — zawsze zaczynaj od oryginału
Najszybszy sposób na zniszczenie obrazu to skompresowanie czegoś, co już zostało skompresowane. Formaty stratne tracą odrobinę szczegółów za każdym razem, gdy są ponownie zapisywane, a te uszkodzenia są kumulatywne i trwałe— JPEG zapisany, otwarty i ponownie zapisany kilka razy gromadzi widoczne artefakty nawet przy wysokich ustawieniach jakości. Bywa to nazywane utratą generacyjną.
Zapobiegają temu dwa nawyki. Po pierwsze, zawsze kompresuj ze swojego oryginału o najwyższej jakości— pliku z aparatu lub eksportu prosto z edytora — a nie z kopii, która już przeszła przez wyżymaczkę. Po drugie, zachowaj ten nieskazitelny oryginał, abyś nigdy nie musiał wyprowadzać skompresowanego obrazu z innego skompresowanego obrazu. Skompresuj raz, do formatu i rozmiaru, których wymaga zadanie, a zachowasz jakość, od której zacząłeś.
Składając to w całość
Aby zmniejszyć obraz, zachowując jego świetny wygląd: zmień jego rozmiar do wymiarów, w jakich faktycznie go wyświetlasz, wybierz odpowiedni format dla treści, eksportuj przy jakości 70–85 (lub bezstratnie, gdy wierność jest nie do negocjacji) i zawsze pracuj na oryginale. Każdy krok się kumuluje, a razem rutynowo dają imponujące oszczędności bez widocznej utraty jakości.
Wszystkie narzędzia na FileShrinking działają w 100% w Twojej przeglądarce — Twoje pliki nigdy nigdzie nie są przesyłane — więc możesz eksperymentować bez żadnego ryzyka. Wrzuć zdjęcie do kompresora obrazów, wypróbuj kilka poziomów jakości i porównaj wyniki samodzielnie.