Způsoby platby Abuse

Optimalizace obrázků v systému Linux

16.06.2021, 19:33

Pokud máte v počítači dostatek obrázků a zabírají příliš mnoho místa, je určitě možné zmenšit jejich velikost i bez ztráty kvality. To může být velmi užitečné i při nahrávání obrázků do cloudového úložiště.

V tomto článku se podíváme, jak se optimalizace obrázků v Linuxu provádí. Pro řešení tohoto úkolu existuje celá řada grafických nástrojů, ale ve skutečnosti je vše jednodušší. Dále se podíváme na to, jak komprimovat obrázky pomocí dvou jednoduchých, ale velmi účinných konzolových nástrojů příkazového řádku: jpegoptim je nástroj pro optimalizaci a kompresi obrázků JPEG bez ztráty kvality; optipng je malý program, který umožňuje zmenšit velikost obrázků PNG bez ztráty kvality.

Formáty JPEG a PNG jsou nejběžnějšími formáty obrázků na internetu, takže budete moci optimalizovat téměř všechny obrázky

Optimalizace obrázků JPEG

Existuje nástroj jpegoptim, nástroj příkazového řádku, který lze použít ke kompresi obrázků JPEG, JPG a JFIF bez ztráty kvality. Nástroj optimalizuje obrázky na základě Huffmanových tabulek. Algoritmus JPEG používá kompresi tak, jak je, ale této komprese je dosaženo pomocí ztráty kvality, a zde můžeme optimalizovat velikost beze změny obrázku.

INSTALACE APLIKACE JPEGOPTIM

Chcete-li nainstalovat nástroj v distribucích Ubuntu, Debian a na nich založených, spusťte následující příkaz:

$ sudo apt install jpegoptim

Ve Fedoře, Red Hatu, CentOS a dalších distribucích na nich založených je to trochu složitější, musíte nejprve přidat repozitář epel-release. To můžete provést pomocí následujícího příkazu:

$ sudo yum install epel-release

Nebo:

$ sudo dnf install epel-release

Pak můžete nainstalovat jpegoptim z právě přidaného repozitáře:

$ sudo yum install jpegoptim

Nebo:

$ sudo dnf install jpegoptim

JAK POUŽÍVAT JPEGOPTIM

Podívejme se, jak používat jpegoptim. Použití linuxového nástroje pro kompresi obrázků je velmi snadné. Stačí program spustit a předat mu název souboru. Syntaxe je následující:

$ jpegoptim optiona file_name.jpeg

Podívejme se na možnosti nástroje:

  • -d - zadejte složku, do které se mají hotové obrázky uložit;
  • -f - vynucená optimalizace;
  • -m - ukazatel kvality, zruší bezeztrátovou kompresi a nastaví úroveň kvality od 0 do 100, čím více, tím lépe;
  • -n - neprovádí skutečnou optimalizaci, pouze zobrazí výsledek;
  • -S - nastaví velikost hotového obrázku, lze zadat v procentech nebo kilobajtech;
  • -o - nahradí zdrojový soubor;
  • -p - uloží časové značky;
  • -P - uložit práva k souboru.

Podívejme se, jak optimalizovat obrázky v Linuxu pomocí programu jpegoptim. Nejprve se podívejme na původní velikost:

$ du image.jpg

Optimalizace obrázků v systému Linux

Dále provedeme nejjednodušší optimalizaci:

$ jpegoptim image.jpg

Optimalizace obrázků v systému Linux

Pak se znovu podíváme na velikost:

$ du image.jpg

Optimalizace obrázků v systému Linux

Jak vidíte, komprese jpg zafungovala a při otevření obrázku v libovolném grafickém programu nedojde k žádnému rozdílu nebo zhoršení kvality, původní a hotový obrázek budou identické. Vlevo je optimalizovaný, vpravo originál:

Optimalizace obrázků v systému Linux

Pokud chcete, můžete obrázek zkomprimovat na určitou velikost, ale pak nebude bezeztrátový:

$ jpegoptim --size=250k image.jpeg

Obrázek bude komprimován, ale jeho kvalita se znatelně zhorší. Pokud je obrázků hodně, můžete velmi snadno použít dávkovou kompresi, stačí přejít do složky s obrázky a pak spustit příkaz pro kompresi zadáním například masky místo souboru:

$ cd images/

jpegoptim *.jpg

Optimalizace obrázků v systému Linux

Můžete také vypsat více obrázků najednou:

$ jpegoptim image1.jpg image2.jpg

Pro optimalizaci všech obrázků v určité složce můžete použít příkaz xargs spolu s příkazem find. Například komprimovat všechny obrázky v aktuální složce s přesunem do složky ~/compressed:

$ find . -name "*.jpg" | xargs jpegoptim -d ~/compressed -p

To je vše, nyní víte, jak komprimovat obrázky jpg v Linuxu. Příště si povíme, jak komprimovat obrázky png. To je také velmi jednoduché.

OPTIMALIZACE OBRÁZKŮ PNG V LINUXU

PNG neboli Portable Network Graphics je formát bitmapových obrázků, který má nahradit nedokonalý formát GIF z hlediska komprese a reprodukce barev. Velikost obrázků PNG se může značně lišit v závislosti na několika faktorech, jako je barevná hloubka, prokládání, filtr před kompresí, použitý kompresní algoritmus atd.

OptiPNG je konzolový nástroj, který umožňuje optimalizovat obrázky PNG. Konkrétně komprimovat velikost, obnovit metadata, zkontrolovat integritu atd. Pomocí OptiPNG můžete komprimovat soubory bez ztráty kvality, stejně jako jsme to udělali s formátem Jpeg.

INSTALACE PROGRAMU OPTIPNG

Pokud používáte Ubuntu, program se nachází v oficiálních repozitářích a můžete si jej velmi snadno nainstalovat. Chcete-li nainstalovat optipng v Debianu, Ubuntu a odvozených systémech, zadejte následující příkaz:

$ sudo apt install optipng

V systémech Red Hat, CentOS nebo Fedora se to dělá úplně stejně, jen se používá jiný správce balíčků:

$ sudo yum install optipng

Nebo:

$ sudo dnf install optipng

KOMPRESE OBRÁZKŮ POMOCÍ OPTIPNG

Syntaxe nástroje je velmi jednoduchá. Můžete ji používat úplně stejným způsobem jako jpegoptim:

$ optipng ioptions file_name.png

Podívejme se na možnosti utility:

  • -backup - ukládání kopií upravených souborů;
  • -dir - složka, do které se mají soubory zapisovat;
  • -force - vynutí zápis odchozího souboru;
  • -out - zapsat odchozí soubor do zadaného souboru;
  • -simulate - neprovádět žádné akce, ale pouze zobrazit výsledek;
  • -o - nastaví úroveň komprese od 0 do 7.

Nyní se pokusíme optimalizovat png v Linuxu. Nejprve se podívejme na velikost souboru:

$ df -h image.png

Optimalizace obrázků v systému Linux

Pro provedení komprese obrázku použijte následující příkaz:

$ optipng image.png

Pak se opět podívejte na velikost, v tomto příkladu nejsou rozdíly vidět, protože obrázek je velmi malý, ale při větší velikosti budou značné:

I zde je komprese obrázků png linux bezeztrátová, což znamená, že získáte přesně stejný obrázek, jen menší. Můžete také určit úroveň komprese, ta nemá vliv na kvalitu obrázku, ale přímo ovlivňuje dobu běhu programu. Hodnota může být od 0 do 7 a čím více, tím silnější bude komprese a tím delší bude zpracování:

$ optipng -o 7 impge.png

Pro dávkové zpracování obrázků můžete použít stejný princip jako při práci s jpeg:

$ cd images/

$ optipng *.png

Nyní víte, jak se optimalizace obrázků v Linuxu provádí.