Ak máte v počítači dostatok obrázkov a zaberajú príliš veľa miesta, určite je možné zmenšiť ich veľkosť aj bez straty kvality. To môže byť veľmi užitočné aj pri odosielaní obrázkov do cloudového úložiska.
Formáty JPEG a PNG sú najbežnejšie formáty obrázkov na internete, takže budete môcť optimalizovať takmer všetky obrázky
Existuje nástroj s názvom jpegoptim, nástroj príkazového riadka, ktorý možno použiť na komprimáciu obrázkov JPEG, JPG a JFIF bez straty kvality. Nástroj optimalizuje obrázky na základe Huffmanových tabuliek. Algoritmus JPEG používa kompresiu ako takú, ale táto kompresia sa dosahuje pomocou straty kvality a tu môžeme optimalizovať veľkosť bez zmeny obrázka.
Ak chcete nainštalovať nástroj v distribúciách Ubuntu, Debian a na nich založených, spustite:
$ sudo apt install jpegoptim
Vo Fedore, Red Hate, CentOS a ďalších distribúciách na nich založených je to trochu zložitejšie, najprv budete musieť pridať repozitár epel-release. Môžete to urobiť pomocou tohto príkazu:
$ sudo yum install epel-release
Alebo:
$ sudo dnf install epel-release
Potom môžete nainštalovať jpegoptim z práve pridaného repozitára:
$ sudo yum install jpegoptim
Alebo:
$ sudo dnf install jpegoptim
Pozrime sa na to, ako používať jpegoptim. Používanie linuxového nástroja na kompresiu obrázkov je veľmi jednoduché. Všetko, čo musíte urobiť, je spustiť program a odovzdať mu názov súboru. Toto je syntax:
$ jpegoptim optiona file_name.jpeg
Pozrime sa na možnosti nástroja:
-d
- uveďte priečinok, do ktorého sa majú uložiť hotové obrázky;-f
- vynútená optimalizácia;-m
- ukazovateľ kvality, zruší bezstratovú kompresiu a nastaví úroveň kvality od 0 do 100, čím viac, tým lepšie;-n
- nevykoná skutočnú optimalizáciu, iba zobrazí výsledok;s -
nastaviť veľkosť hotového obrázka, možno ju zadať v percentách alebo kilobajtoch;-o
- nahradí zdrojový súbor;-p
- uložiť časové značky;-P
- uložiť práva k súboru.Pozrime sa, ako optimalizovať obrázky v Linuxe pomocou programu jpegoptim. Najprv sa pozrime na pôvodnú veľkosť:
$ du image.jpg
Ďalej vykonáme najjednoduchšiu optimalizáciu:
$ jpegoptim image.jpg
Potom sa opäť pozrieme na veľkosť:
$ du image.jpg
Ako vidíte, kompresia jpg sa podarila a pri otvorení obrázka v ľubovoľnom grafickom programe nebude žiadny rozdiel ani zhoršenie kvality, pôvodný a hotový obrázok budú identické. Vľavo je optimalizovaný, vpravo je originál:
Ak chcete, môžete obrázok skomprimovať na určitú veľkosť, ale potom nebude bezstratový:
$ jpegoptim --size=250k image.jpeg
Obrázok bude síce komprimovaný, ale jeho kvalita sa výrazne zhorší. Ak je obrázkov veľa, môžete veľmi jednoducho použiť dávkovú kompresiu, stačí prejsť do priečinka s obrázkami a potom spustiť príkaz na kompresiu napríklad zadaním masky namiesto súboru:
$ cd images/
jpegoptim *.jpg
Môžete tiež vypisovať viac ako jeden obrázok naraz:
$ jpegoptim image1.jpg image2.jpg
Ak chcete optimalizovať všetky obrázky v konkrétnom priečinku, môžete použiť príkaz xargs spolu s príkazom find. Napríklad komprimovať všetky obrázky v aktuálnom priečinku s presunom do priečinka ~/compressed:
$ find . -name "*.jpg" | xargs jpegoptim -d ~/compressed -p
To je všetko, teraz viete, ako komprimovať obrázky jpg v Linuxe. Ďalej budeme hovoriť o tom, ako komprimovať obrázky png. To je tiež veľmi jednoduché.
PNG alebo Portable Network Graphics je bitmapový formát obrázkov navrhnutý tak, aby nahradil nedokonalý formát GIF z hľadiska kompresie a reprodukcie farieb. Veľkosť obrázkov PNG sa môže výrazne líšiť v závislosti od viacerých faktorov, ako je farebná hĺbka, prelínanie, filter pred kompresiou, použitý kompresný algoritmus atď.
OptiPNG je konzolový nástroj, ktorý umožňuje optimalizovať obrázky PNG. Konkrétne ide o kompresiu veľkosti, obnovenie metadát, kontrolu integrity atď. Pomocou OptiPNG môžete komprimovať súbory bez straty kvality, podobne ako sme to urobili s formátom Jpeg.
Ak používate Ubuntu, program sa nachádza v oficiálnych repozitároch a môžete ho veľmi jednoducho nainštalovať. Ak chcete nainštalovať optipng v Debiane, Ubuntu a derivátoch, zadajte:
$ sudo apt install optipng
V systémoch Red Hat, CentOS alebo Fedora sa to robí presne rovnakým spôsobom, len s iným správcom balíkov:
$ sudo yum install optipng
Alebo:
$ sudo dnf install optipng
Syntax nástroja je veľmi jednoduchá. Môžete ho používať presne rovnakým spôsobom ako jpegoptim:
$ optipng ioptions file_name.png
Pozrime sa na možnosti utility:
-backup
- uloží kópie upravených súborov;-dir
- priečinok, do ktorého sa majú súbory zapisovať;-force
- vynútiť zápis odchádzajúceho súboru;-out
- zapísať odchádzajúci
súbor do zadaného súboru;-simulate
- nevykonať žiadne akcie, ale iba zobraziť výsledok;-o
- nastaví úroveň kompresie od 0 do 7.Teraz sa pokúsime optimalizovať png v Linuxe. Najskôr sa pozrime na veľkosť súboru:
$ df -h image.png
Na vykonanie kompresie obrázka použite nasledujúci príkaz:
$ optipng image.png
Potom sa opäť pozrite na veľkosť, v tomto príklade nie sú rozdiely viditeľné, pretože obrázok je veľmi malý, ale pri väčšej veľkosti budú výrazné:
Aj tu je kompresia png linux bezstratová, čo znamená, že dostanete presne ten istý obrázok, len menší. Môžete tiež určiť úroveň kompresie, tá nemá vplyv na kvalitu obrázka, ale priamo ovplyvňuje čas behu programu. Hodnota môže byť od 0 do 7 a čím viac, tým silnejšia bude kompresia a tým dlhšie bude spracovanie:
$ optipng -o 7 impge.png
Pri dávkovom spracovaní obrázkov môžete použiť rovnaký princíp ako pri práci s jpeg:
$ cd images/
$ optipng *.png
Teraz už viete, ako sa optimalizácia obrázkov v Linuxe vykonáva.