V tomto článku mluvíme o různých způsobech, jak zmenšit velikost souborů obrázků v Linuxu. S rostoucím zaměřením na kvalitu obrázků se velikost souborů obrázků ohromně zvětšuje. U takto velkých obrázků je neustálá potřeba zmenšovat velikost souborů, proto vám přinášíme článek, který se tímto úkolem zabývá.
Pojďme se rychle ponořit do procesů zmenšování velikosti souboru obrázku.
1. Použití příkazu convert ke zmenšení velikosti souborů obrázků v systému Linux
Než přejdeme k aplikaci tohoto příkazu, ujistěte se, že je v systému přítomen.
convert
příkaz spadá pod ImageMagick
balík. Uživatelé Debian/Ubuntu si mohou nainstalovat ImageMagick
spuštěním:
sudo apt install imagemagick
Jakmile je balíček nainstalován, můžeme spustit man convert
podívat se na různé operace, které příkaz podporuje.
Snížení o kvalitu obrazu
Nejjednodušší způsob, jak zmenšit velikost obrázku, je snížit kvalitu obrázku.
convert <INPUT_FILE> -quality 10% <OUTPUT_FILE>
Při použití convert
došlo k výraznému snížení kvality obrazu příkaz. V případě, že chceme prozkoumat novou velikost souboru, můžeme tak učinit:
du -h jd_logo*
Příkaz du poskytuje množství disku používaného soubory v Linuxu. Ve výše uvedeném příkazu zobrazíme množství místa, které zabírají všechny verze “jd_logo“ .
Zmenšení velikosti souborů obrázků v systému Linux o pixely
Velikost souboru obrázku lze zmenšit, pokud snížíme počet pixelů, které obsahuje. Za tímto účelem musíme zadat novou šířku a výšku.
convert <INPUT_FILE> -resize 200x200 <OUTPUT_FILE>
Snížení kvality zmenšeného obrázku lze pozorovat, když roztáhneme jeho rozměry.
Poměr stran obrázku se obnoví, i když rozměry uvedené v příkazu porušily původní poměr stran. Myšlenka konverze spočívá v tom, že zmenšený obrázek se musí vejít do zadaných rozměrů.
Aby bylo možné zmenšit obrázek na přesné rozměry a zanedbat poměr stran, '!'
musí být použito po resize
parametr.
convert <INPUT_FILE> -resize 200x200! <OUTPUT_FILE>
Převod formátu obrázku
Některé webové stránky podporují pouze konkrétní přípony souborů, proto convert
příkaz poskytuje možnost převést formát obrázku.
convert <INPUT_FILE> <OUTPUT_FILE>
Snížení kvality je 92 %, pokud není uveden žádný parametr. Ve výše uvedeném úryvku jsme převedli soubor obrázku „.png“ na soubor „.jpg“.
convert
příkaz má stovky aplikací, jako je otáčení obrázku, aplikace efektů nebo kreslení věcí na obrázek. Manuálové stránky můžeme odkazovat pomocí man convert
abyste zvládli nástroj pro formátování obrázků.
Abychom mohli převést více souborů, potřebujeme bash skript, který spustí smyčku pro všechny obrázky. Existuje alternativa pro zpracování více obrazových souborů, což je mogrify
který je součástí ImageMagick
balíček.
2. Pomocí příkazu mogrify
mogrify [OPTIONS] [FILE_LIST]
Hlavní rozdíl mezi convert
a mogrify
příkaz je, že mogrify
příkaz aplikuje operace na původní soubor obrázku, zatímco příkaz convert
ne.
Navíc mogrify
příkaz podporuje výrazy do fronty ve více souborech. Například:
mogrify -quality 10 *.jpg
Aplikace pro convert
a mogrify
jsou identické, protože jsou odvozeny ze stejného balíčku.
3. Použití Pngcrush pro soubory PNG
pngcrush
je optimalizátor souborů PNG (Portable Network Graphics). Zmenšuje velikost souboru obrázku tím, že jej prochází různými kompresními metodami a filtry.
Uživatelé Debian/Ubuntu mohou pro instalaci spustit následující příkaz.
sudo apt get install pngcrush
Uživatelé jiných distribucí Linuxu jej mohou nainstalovat pomocí svých standardních instalačních příkazů následovaných pngcrush
.
Po dokončení instalace můžeme zmenšit velikost souboru PNG spuštěním:
pngcrush -brute <INPUT_FILE> <OUTPUT_FILE>
'-brute'
volba provede soubor 114 metodami filtrování/komprese. Rozšířený proces trvá několik sekund. Místo použití přístupu hrubé síly mohou uživatelé vybrat filtry, úrovně a strategie pro optimalizaci.
Typy filtrů a další vlastnosti lze zjistit pomocí manuálových stránek – man pngcrush
.
4. Použití Jpegoptim pro soubory JPG
jpegoptim
je kompresor souborů JPG (Joint Photographic Group). Tento příkaz podporuje procentuální a cílovou velikost souboru jako parametr pro zmenšení velikosti obrázku.
Instalace je docela jednoduchá.
sudo apt install jpegoptim
Po dokončení instalace můžeme spustit:
jpegoptim --size=<TARGET_SIZE> <INPUT_FILE>
jpegoptim
obslužný program přepíše původní obraz, proto se doporučuje ponechat si soubor záložního obrazu. Nejlepší vlastností tohoto nástroje je, že přijímá cílovou velikost souboru, což může být záchranou při nahrávání obrázků určitých velikostí.
Na obrázku výše jsme zkomprimovali soubor o velikosti 260 kB do 20 kB obrazu.
Kvalita obrazu je nedotčena, i když došlo k masivnímu 90% zmenšení velikosti. Příkaz také podporuje kompresi na základě procent.
Více o příkazu se můžeme dozvědět z manuálových stránek prostřednictvím – man jpegoptim
.
5. Pomocí nástroje Trimage GUI Tool
trimage
GUI Tool je základní přetahovací software. Přidané soubory jsou automaticky komprimovány na možnou bezeztrátovou velikost souboru.
Instalace je podobná předchozím metodám.
sudo apt install trimage
Po dokončení instalace se k němu dostaneme vyhledáním „trimage“ na systému. Okno oříznutí vypadá jako na následujícím obrázku:
Podporované sloupce jsou:
- Název souboru
- Velikost původního obrázku
- Velikost převedeného obrázku
- Procento komprese
Nástroj přepíše původní obrázek. Komprese je minimální, protože komprese je bezeztrátová.
GIMP (GNU Image Manipulation Program) je dobrou alternativou pro zmenšení velikosti obrázků na základě grafického uživatelského rozhraní, ale rozhodně je to přehnané.
Závěr
Nejjednodušší a nejúčinnější způsob, jak zmenšit velikost souborů obrázků v Linuxu, je pomocí příkazů poskytovaných ImageMagick
balíček.
Doufáme, že článek byl zajímavý a zároveň poučný. Děkuji za přečtení.
Odkazy
Oficiální webové stránky Pngcrush
Oficiální stránky Trimage