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ě.
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
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.
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
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
Dále provedeme nejjednodušší optimalizaci:
$ jpegoptim image.jpg
Pak se znovu podíváme na velikost:
$ du image.jpg
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:
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
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é.
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.
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
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
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í.