Als je genoeg afbeeldingen op je computer hebt staan en ze nemen te veel ruimte in beslag, dan is het zeker mogelijk om ze te verkleinen, zelfs zonder kwaliteitsverlies. Dit kan ook erg handig zijn bij het uploaden van afbeeldingen naar cloud-opslag.
JPEG en PNG zijn de meest voorkomende afbeeldingsformaten op het internet, dus je kunt bijna alle afbeeldingen optimaliseren.
Er is een hulpprogramma genaamd jpegoptim, een opdrachtregelprogramma dat kan worden gebruikt om JPEG-, JPG- en JFIF-afbeeldingen te comprimeren zonder kwaliteitsverlies. Het hulpprogramma optimaliseert afbeeldingen op basis van Huffman tabellen. Het JPEG-algoritme gebruikt compressie zoals het is, maar deze compressie wordt bereikt met kwaliteitsverlies, en hier kunnen we de grootte optimaliseren zonder de afbeelding te veranderen.
Voer het hulpprogramma uit om het te installeren in Ubuntu, Debian en gebaseerde distributies:
$ sudo apt install jpegoptim
In Fedora, Red Hat, CentOS en andere distributies die daarop gebaseerd zijn is het iets ingewikkelder, je moet eerst de epel-release repository toevoegen. Je kunt dit doen met een commando als dit:
$ sudo yum install epel-release
Of:
$ sudo dnf install epel-release
Vervolgens kun je jpegoptim installeren vanuit de repository die je zojuist hebt toegevoegd:
$ sudo yum install jpegoptim
Of:
$ sudo dnf install jpegoptim
Laten we eens kijken hoe je jpegoptim gebruikt. Het gebruik van het Linux hulpprogramma voor beeldcompressie is heel eenvoudig. Je hoeft alleen maar het programma uit te voeren en een bestandsnaam door te geven. Dit is de syntaxis:
$ jpegoptim optiona file_name.jpeg
Laten we eens kijken naar de opties van het hulpprogramma:
-d
- specificeer de map waarin de voltooide afbeeldingen moeten worden opgeslagen;-f
- geforceerde optimalisatie;-m
- kwaliteitsindicator, annuleert lossless compressie en stelt het kwaliteitsniveau in van 0 tot 100, hoe meer hoe beter;-n
- voert geen echte optimalisatie uit, toont alleen het resultaat;-S
- de grootte van de voltooide afbeelding instellen, kan worden opgegeven in procenten of kilobytes;-o
- vervang het bronbestand;-p
- tijdstempels opslaan;-P
- bestandsrechten opslaan.Laten we eens kijken hoe je afbeeldingen in Linux kunt optimaliseren met jpegoptim. Laten we eerst eens kijken naar de originele grootte:
$ du image.jpg
Vervolgens doen we de eenvoudigste optimalisatie:
$ jpegoptim image.jpg
Dan kijken we opnieuw naar de grootte:
$ du image.jpg
Zoals je kunt zien heeft de jpg-compressie gewerkt, en als je de afbeelding opent in een willekeurig grafisch programma zal er geen verschil of kwaliteitsvermindering zijn, de originele en de voltooide afbeelding zullen identiek zijn. Links is de geoptimaliseerde afbeelding, rechts het origineel:
Als je wilt, kun je de afbeelding comprimeren tot een bepaalde grootte, maar dan zal het niet verliesvrij zijn:
$ jpegoptim --size=250k image.jpeg
De afbeelding wordt gecomprimeerd, maar de kwaliteit gaat merkbaar achteruit. Als er veel afbeeldingen zijn, kun je heel gemakkelijk batchcompressie gebruiken. Ga gewoon naar de map met de afbeeldingen en voer dan het compressiecommando uit door bijvoorbeeld een masker op te geven in plaats van een bestand:
$ cd images/
jpegoptim *.jpg
Je kunt ook meer dan één afbeelding tegelijk opsommen:
$ jpegoptim image1.jpg image2.jpg
Om alle afbeeldingen in een bepaalde map te optimaliseren, kun je de opdracht xargs samen met find gebruiken. Comprimeer bijvoorbeeld alle afbeeldingen in de huidige map met move naar de map ~/compressed:
$ find . -name "*.jpg" | xargs jpegoptim -d ~/compressed -p
Dat is het, nu weet je hoe je jpg afbeeldingen kunt comprimeren in Linux. Vervolgens zullen we het hebben over hoe je png kunt comprimeren. Dit is ook heel eenvoudig.
PNG of Portable Network Graphics is een bitmap-afbeeldingsformaat dat werd ontworpen om het onvolmaakte GIF-formaat te vervangen op het vlak van compressie en kleurweergave. De grootte van PNG-afbeeldingen kan sterk variëren, afhankelijk van verschillende factoren zoals kleurdiepte, interlacing, vóór compressiefilter, gebruikt compressiealgoritme, enz.
OptiPNG is een hulpprogramma voor de console waarmee je PNG-afbeeldingen kunt optimaliseren. Namelijk de grootte comprimeren, metadata herstellen, integriteit controleren, enz. Met OptiPNG kun je bestanden comprimeren zonder kwaliteitsverlies, net zoals we met het Jpeg-formaat hebben gedaan.
Als je Ubuntu gebruikt, staat het programma in de officiële repositories en kun je het heel eenvoudig installeren. Om optipng te installeren in Debian, Ubuntu en afgeleiden typ:
$ sudo apt install optipng
In Red Hat, CentOS of Fedora gaat het precies hetzelfde, alleen een andere pakketbeheerder:
$ sudo yum install optipng
Of:
$ sudo dnf install optipng
De syntax van het hulpprogramma is heel eenvoudig. Je kunt het op precies dezelfde manier gebruiken als jpegoptim:
$ optipng ioptions file_name.png
Laten we eens kijken naar de opties van het hulpprogramma:
-backup
- kopieën van gewijzigde bestanden opslaan;-dir
- map om bestanden naartoe te schrijven;-force
- geforceerd schrijven van uitgaand bestand;-out
- uitgaand
bestand naar opgegeven bestand schrijven;-simulate
- voer geen acties uit, maar toon alleen het resultaat;-o
- compressieniveau instellen van 0 tot 7.Laten we nu proberen om png te optimaliseren in linux. Laten we eerst de bestandsgrootte bekijken:
$ df -h image.png
Gebruik het volgende commando om afbeeldingscompressie uit te voeren:
$ optipng image.png
In dit voorbeeld zijn de verschillen niet zichtbaar omdat de afbeelding erg klein is, maar bij een groter formaat zullen ze significant zijn:
Ook hier compressie png linux lossless afbeeldingen, wat betekent dat je precies dezelfde afbeelding krijgt, alleen kleiner. Je kunt ook het compressieniveau opgeven, dit heeft geen invloed op de kwaliteit van de afbeelding, maar wel direct op de looptijd van het programma. De waarde kan van 0 tot 7 zijn en hoe meer, hoe sterker de compressie en hoe langer de verwerking zal duren:
$ optipng -o 7 impge.png
Voor batchverwerking van afbeeldingen kun je hetzelfde principe gebruiken als bij het werken met jpeg:
$ cd images/
$ optipng *.png
Nu weet je hoe linux afbeeldingen optimaliseren werkt.