ImageMagick - Bestandsgroottes verkleinen

Imagemagick Bestandsgroottes Verkleinen



Een mooie en grote foto is bijna geweldig; het gaat meestal gepaard met een enorme kwaliteit. Er zijn echter vele, vele keren dat u het zich niet kunt veroorloven om foto's te hebben die te groot zijn. Soms is alles wat je wilt een foto van behoorlijk formaat of zelfs een foto die kleiner is dan een bepaalde maat. In dergelijke gevallen is alles wat de programmeur wenst een manier om een ​​middenweg te vinden tussen kwaliteit en omvang. Theoretisch gezien, als je de kwaliteit helemaal opgeeft, zou de bestandsgrootte geen probleem moeten zijn, maar de echte deal is om een ​​compromis te vinden tussen kwaliteit en bestandsgrootte. In deze zelfstudie bespreken we manieren om de bestandsgrootte van afbeeldingen te verkleinen met ImageMagick (zonder de kwaliteit te veel in gevaar te brengen).

ImageMagick installeren

Hiervoor hebben we ImageMagick nodig, dus laten we het eerst installeren:







sudo apt-get installeren beeldmagie



De kwaliteitsschakelaar

De eerste en gemakkelijkste manier om de grootte van een foto/afbeelding/video te verkleinen, is door de kwaliteit van de foto te verminderen. De kwaliteitsschakelaar vertegenwoordigt het JPEG/MIFF/PNG-compressieniveau. Voor JPEG en MPEG staat een kwaliteit van 1 voor het hoogste compressieniveau en de laagste beeldkwaliteit, terwijl 100 staat voor het minste compressieniveau en de beste kwaliteit.



Dus laten we eens kijken naar een voorbeeld; de foto die ik van een boom heb gemaakt is 4624×3468 in termen van resolutie en is 5.70226MiB. Dit is de originele foto, een JPEG, om precies te zijn.






Het gaat er nu om dat we de grootte van de afbeelding willen verkleinen. Laten we dus proberen de instellingen voor de kwaliteitsschakelaar op iets anders in te stellen en kijken wat er gebeurt.

converteer boom_4624x3468.jpg -kwaliteit 75 boom_4624x3468_quality75.jpg
converteer boom_4624x3468.jpg -kwaliteit 25 boom_4624x3468_quality25.jpg



Ik heb de kwaliteit teruggebracht tot 75 voor de ene foto en 25 voor de andere. De originele afbeelding was 5.70226MiB, maar de afbeelding met een kwaliteit van 75 werd 2.74664MiB terwijl die van kwaliteit 25 1358250 (1.295MiB) werd. Hier zou ik persoonlijk gaan voor de 75% kwaliteit.



Aangezien we ook geven om de daadwerkelijke kwaliteit van de foto, wil ik je de foto's laten zien:


boom_4624x3468_quality75.jpg


boom_4624x3468_quality25.jpg

Zoals u kunt zien, is de kwaliteit niet te veel aangetast, maar de bestandsgrootte is kleiner.

Nu probeerde ik hetzelfde te doen met PNG, en dit is wat ik kreeg:


Het ging dus van 23501600B (22.413MiB) naar 22.2854MiB. Voor een JPEG ging het van 5.70226MiB naar 1.295MiB. Voor formaten zonder verlies, zoals PNG, is de kwaliteitswisseling een stuk moeilijker.

Het formaat van afbeeldingen wijzigen

Het formaat van afbeeldingen wijzigen is een andere manier. Bijvoorbeeld:

converteer boom_4624x3468.jpg - formaat wijzigen vijftig % x50 % tree_4624x3468_resize50 % .jpg



Zoals je duidelijk kunt zien, was de afbeelding van 4624 × 3468 5,70226 MiB, terwijl de afbeelding van 2312 × 1734 slechts 1,56287 MiB was.

De Define-schakelaar

De schakelaar Definiëren wordt gevolgd door een sleutel en de opgegeven waarde.

-definieer sleutel{=waarde}…

De lijst met mogelijke sleutelwaarden is te vinden op .

Voor PNG kunt u png:compressieniveau=waarde gebruiken. De waarde kan variëren van 0 tot 9. Een waarde van 0 geeft u de minste compressie, maar is snel, en een waarde van 9 geeft u de beste compressie, maar is de langzaamste. Alles er tussenin mag ook.

Bijvoorbeeld:

boom converteren_4624x3468.png -definiëren png:compressieniveau= 9 boom_4624x3468_compressie9.png



In de meeste gevallen wil een programmeur een maximale grootte voor een foto instellen. Stel bijvoorbeeld dat u een maximale grootte voor een foto wilt instellen. U kunt hiervoor de schakelaar Definiëren gebruiken.

-define jpeg:extent={grootte}

converteer boom_4624x3468.jpg -definiëren jpeg: mate waarin =1MB boom_4624x3468_extent1MB.jpg



Zoals je op de bovenstaande afbeelding kunt zien, is deze ingesteld op een resolutie van 4624 × 3468 en een grootte van 0,897 MiB. Dus, zoals je vroeg, heeft ImageMagick een foto gemaakt die kleiner is dan de maximale grootte van 1 MB.

Stripschakelaar

Foto's die we met camera's maken, worden geleverd met metadata. Het verwijderen van de metadata kan ook wat ruimte vrijmaken. In ImageMagick doen we dit met behulp van de stripschakelaar.

converteer boom_4624x3468.jpg -strip boom_strip.jpg



Hier, zoals je kunt zien, is de originele foto 4624 × 3468 en 5,7 MiB. Maar de afbeelding waarvan de metagegevens zijn verwijderd, is 4,65 MiB.

Kleurruimte-schakelaar

U kunt ook proberen de kleurruimte te wijzigen. In dit eerste geval maak ik het grijs.

converteer boom_4624x3468.jpg -kleur ruimte grijze boom_grijs.jpg -kwaliteit 75



Zoals u kunt zien, is de verkleining van de afbeeldingsgrootte niet te groot, maar er is een verkleining – van 5.70226MiB naar 4.44997MiB.

Als alternatief heb ik ook het volgende geprobeerd:

boom converteren_4624x3468.png -kleur ruimte grijze boom_graypng.png



In het geval van een PNG is mijn originele foto, dat is 4624 × 3468, 22,42 MiB, maar als ik het grijs maak, wordt het 8,88 MiB.

Kleuren schakelen

U kunt er ook voor kiezen om het aantal gebruikte kleuren te wijzigen. In dit specifieke geval ga ik slechts 16 kleuren gebruiken op een PNG.

boom converteren_4624x3468.png -kleuren 16 boom_4624x3468_16colors.png



De originele PNG was 4624×3468 en 22.42MiB. Toen ik de kleuren echter veranderde in slechts 16, werd de afbeelding 4,27 MiB groot. En de foto ziet er zo uit:


boom_4624x3468_16colors.png

Meerdere schakelaars gebruiken

Nu hoef je geen enkele schakelaar op een foto te gebruiken! Je kunt zoveel schakelaars combineren als je wilt op een foto.

Dus in voorbeeld 1 ga ik een PNG-foto van een boom maken. Deze originele foto is 4624 × 3468 en 22,42 MiB groot, en ik ga meerdere schakelaars gebruiken en kijken waar ik heen ga.

boom converteren_4624x3468.png -strip - formaat wijzigen 75 % x75 % -definiëren png:compressieniveau= 9 -kleur ruimte grijze boom_4624x3468_reducedsize.png



Dus deze PNG, met een oorspronkelijke grootte van 22,42 MiB, veranderde in een afbeelding van 5,3 MiB. De resulterende afbeelding is ongeveer 23% van de oorspronkelijke grootte.

Dus laten we nu eens een JPG bekijken.

converteer boom_4624x3468.jpg -kwaliteit 75 - formaat wijzigen 75 % x75 % -strip -kleuren 16 tree_4624x3468_reducedsize.jpg



Dus hier, voor de JPG, gingen we van een originele grootte van 5,7 MiB naar ongeveer 2,2 MiB voor een gekleurde afbeelding.

Maar als het niet gekleurd was:

converteer boom_4624x3468.jpg -kwaliteit 75 - formaat wijzigen 75 % x75 % -strip -kleur ruimte grijze boom_4624x3468_reducedsize.jpg



Hier gingen we van een oorspronkelijke grootte van 5,7 MiB naar 1,6 MiB voor een grijze afbeelding.

Als je had gewild, had je ook een maximumlimiet voor de grootte kunnen instellen. Het punt is dat je de maat kunt verkleinen als je er echt naar op zoek bent.

Conclusie

Bij het schrijven van code voor een bepaald doel hebben we de neiging om ook afbeeldingen te gebruiken, en soms kunnen we het ons gewoon niet veroorloven om afbeeldingen te hebben die te groot zijn. In dergelijke gevallen is de belangrijkste focus van de programmeur het vinden van een compromis tussen de grootte van het beeld en de kwaliteit van het beeld. We willen geen afbeeldingen van een te lage kwaliteit gebruiken, maar we kunnen het ons ook niet veroorloven om grote afbeeldingen te hebben. We hebben dus manieren nodig om de grootte van de afbeelding te verkleinen. ImageMagick biedt verschillende manieren om de grootte van uw afbeelding te verkleinen in de vorm van verschillende schakelaars – kwaliteit, formaat wijzigen, definiëren, enz. U kunt er een of meer gebruiken om de grootte van de afbeelding aan te passen.