Spôsoby platby Abuse

Optimalizácia obrázkov v systéme Linux

16.06.2021, 19:33

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.

V tomto článku si ukážeme, ako sa optimalizácia obrázkov v systéme Linux vykonáva. Na riešenie tejto úlohy existuje množstvo grafických nástrojov, ale v skutočnosti je všetko jednoduchšie. Ďalej sa pozrieme na to, ako komprimovať obrázky pomocou dvoch jednoduchých, ale veľmi účinných konzolových nástrojov príkazového riadka: jpegoptim je nástroj na optimalizáciu a kompresiu obrázkov JPEG bez straty kvality; optipng je malý program, ktorý umožňuje zmenšiť veľkosť obrázkov PNG bez straty kvality.

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

Optimalizácia obrázkov JPEG

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.

INŠTALÁCIA APLIKÁCIE JPEGOPTIM

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

AKO POUŽÍVAŤ 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

Optimalizácia obrázkov v systéme Linux

Ďalej vykonáme najjednoduchšiu optimalizáciu:

$ jpegoptim image.jpg

Optimalizácia obrázkov v systéme Linux

Potom sa opäť pozrieme na veľkosť:

$ du image.jpg

Optimalizácia obrázkov v systéme Linux

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:

Optimalizácia obrázkov v systéme Linux

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

Optimalizácia obrázkov v systéme Linux

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é.

OPTIMALIZÁCIA OBRÁZKOV PNG V LINUXE

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.

INŠTALÁCIA APLIKÁCIE OPTIPNG

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

KOMPRESIA OBRÁZKOV POMOCOU 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

Optimalizácia obrázkov v systéme Linux

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.