ImageMagick – Reduktion af filstørrelser

Imagemagick Reduktion Af Filstorrelser



Et smukt og stort billede er næsten fantastisk; det er normalt ledsaget af en enorm kvalitet. Der er dog mange, mange gange, hvor du ikke har råd til at have billeder, der er for store i størrelsen. Til tider er alt, hvad du ønsker, et billede af anstændig størrelse eller endda et, der er mindre end en bestemt given størrelse. I sådanne tilfælde er alt, hvad programmøren ønsker, en måde at finde en mellemvej mellem kvalitet og størrelse. Teoretisk set, hvis du opgiver kvaliteten helt, så burde filstørrelsen ikke være et problem, men den rigtige opgave er at finde et kompromis mellem kvalitet og filstørrelse. I denne øvelse vil vi diskutere måder at reducere filstørrelsen på billeder ved hjælp af ImageMagick (uden at gå på kompromis med kvaliteten for meget).

Installation af ImageMagick

Vi skal bruge ImageMagick til dette, så lad os først installere det:







sudo apt-get install imagemagi



Kvalitetskontakten

Den første og nemmeste måde at reducere størrelsen på et foto/billede/video er at reducere kvaliteten af ​​billedet. Kvalitetskontakten repræsenterer JPEG/MIFF/PNG-komprimeringsniveauet. For JPEG og MPEG repræsenterer en kvalitet på 1 det højeste niveau af komprimering og den laveste billedkvalitet, mens 100 repræsenterer det mindste niveau af komprimering og den bedste kvalitet.



Så lad os se på et eksempel; billedet jeg tog af et træ er 4624×3468 hvad angår opløsning og er 5,70226MiB. Dette er det originale billede, en JPEG, for at være specifik.






Nu er pointen, at vi ønsker at reducere størrelsen på billedet. Så lad os prøve at indstille kvalitetskontaktindstillingerne til noget lidt anderledes og se, hvad der sker.

konverter træ_4624x3468.jpg -kvalitet 75 tree_4624x3468_quality75.jpg
konverter træ_4624x3468.jpg -kvalitet 25 tree_4624x3468_quality25.jpg



Jeg reducerede kvaliteten til 75 for et billede og 25 for et andet. Det originale billede var 5,70226MiB, men billedet, der havde en kvalitet på 75, blev 2,74664MiB, mens billedet af kvalitet 25 blev 1358250 (1,295MiB). Her ville jeg personligt gå med 75% kvalitet.



Nu, da vi også bekymrer os om den faktiske kvalitet af billedet, lad mig vise dig billederne:


tree_4624x3468_quality75.jpg


tree_4624x3468_quality25.jpg

Som du kan se, er kvaliteten ikke blevet påvirket for meget, men filstørrelsen er mindre.

Nu prøvede jeg at gøre det samme med PNG, og dette er hvad jeg fik:


Så det gik fra 23501600B (22.413MiB) til 22.2854MiB. For en JPEG gik den fra 5,70226MiB til 1,295MiB. For formater uden tab, såsom PNG, er kvalitetsomskifteren meget hårdere.

Ændre størrelse på billeder

Ændring af størrelse på billeder er en anden måde. For eksempel:

konverter træ_4624x3468.jpg -ændre størrelse halvtreds % x50 % tree_4624x3468_resize50 % .jpg



Som du tydeligt kan se, var billedet der var 4624×3468 5,70226MiB, mens det der var 2312×1734 kun er 1,56287MiB.

Definer-kontakten

Definer-kontakten efterfølges af en tast og dens givne værdi.

-definer nøgle{=værdi}...

Listen over mulige nøgleværdier kan findes på .

Til PNG kan du bruge png:compression-level=value. Værdien kan være alt fra 0 til 9. En værdi på 0 vil give dig den mindste komprimering, men den er hurtig, og en værdi på 9 vil give dig den bedste komprimering, men er den langsomste. Alt derimellem går også.

For eksempel:

konverter træ_4624x3468.png -Definere png:komprimeringsniveau= 9 tree_4624x3468_compression9.png



I de fleste tilfælde er det, en programmør ønsker at indstille en maksimal størrelse for et billede. Så antag for eksempel, at du vil indstille en maksimal størrelse for et billede. Du kan bruge Define-kontakten til at gøre dette.

-define jpeg:extent={størrelse}

konverter  tree_4624x3468.jpg -Definere jpeg: grad =1MB tree_4624x3468_extent1MB.jpg



Som du kan se på billedet ovenfor, satte den den til en opløsning på 4624×3468 og en størrelse på 0,897MiB. Så, som du anmodede om, har ImageMagick oprettet et foto, der er mindre end den maksimale størrelse på 1 MB.

Strip Switch

Billeder vi tager med kameraer kommer med Metadata. Fjernelse af metadata kan også rydde lidt plads. I ImageMagick gør vi dette ved hjælp af strip-switchen.

konverter træ_4624x3468.jpg -strimmel tree_strip.jpg



Her, som du kan se, er det originale foto 4624×3468 og 5,7MiB. Men det billede, der har fået fjernet sine Metadata, er 4,65 MiB.

Colorspace Switch

Du kan også prøve at skifte farverummet. I dette første tilfælde vil jeg gøre det gråt.

konverter træ_4624x3468.jpg -farverum gråt træ_grå.jpg -kvalitet 75



Som du kan se, er reduktionen af ​​billedstørrelsen ikke for stor, men der er en reduktion – fra 5,70226MiB til 4,44997MiB.

Alternativt prøvede jeg også følgende:

konverter træ_4624x3468.png -farverum grå træ_graypng.png



I tilfælde af en PNG er mit originale billede, det er 4624×3468, 22,42MiB, men når jeg bliver gråt, bliver det 8,88MiB.

Farveskift

Du kan også vælge at ændre antallet af anvendte farver. I dette særlige tilfælde vil jeg kun bruge 16 farver på en PNG.

konverter træ_4624x3468.png -farver 16 tree_4624x3468_16colors.png



Den originale PNG var 4624×3468 og 22,42MiB. Men da jeg ændrede farverne til kun 16, blev billedet 4,27MiB i størrelse. Og billedet ser sådan ud:


tree_4624x3468_16colors.png

Brug af flere kontakter

Nu behøver du ikke bruge en eneste kontakt på et billede! Du kan kombinere lige så mange kontakter, du vil på et billede.

Så i eksempel 1 vil jeg tage et PNG-billede af et træ. Dette originale foto er 4624×3468 og 22,42MiB i størrelse, og jeg vil bruge flere kontakter og se, hvor det fører mig hen.

konverter træ_4624x3468.png -strimmel -ændre størrelse 75 % x75 % -Definere png:komprimeringsniveau= 9 -farverum grå  tree_4624x3468_reducedsize.png



Så denne PNG, med en original størrelse på 22,42MiB, blev til et billede på 5,3MiB. Det resulterende billede er omkring 23 % af den originale størrelse.

Så lad os derefter tjekke en JPG ud.

konverter træ_4624x3468.jpg -kvalitet 75 -ændre størrelse 75 % x75 % -strimmel -farver 16 tree_4624x3468_reducedsize.jpg



Så her, for JPG, gik vi fra en original størrelse på 5,7 MB til omkring 2,2 MB for et farvet billede.

Men hvis det ikke var farvet:

konverter træ_4624x3468.jpg -kvalitet 75 -ændre størrelse 75 % x75 % -strimmel -farverum gråt træ_4624x3468_reducedsize.jpg



Her gik vi fra en original størrelse på 5,7 MB til 1,6 MB for et gråt billede.

Hvis du havde ønsket det, kunne du også have sat en max grænse for størrelsen. Pointen er, at du kan reducere størrelsen, hvis du virkelig indstiller dig på det.

Konklusion

Når vi skriver kode til et bestemt formål, har vi en tendens til også at bruge billeder, og nogle gange har vi bare ikke råd til at have billeder, der er for store i størrelse. I sådanne tilfælde er programmørens hovedfokus at finde et kompromis mellem størrelsen af ​​billedet og kvaliteten af ​​billedet. Vi ønsker ikke at bruge billeder, der er for lav i kvalitet, men vi har heller ikke råd til at have billeder i store størrelser. Så vi har brug for måder at reducere størrelsen på billedet på. ImageMagick tilbyder en række måder at reducere størrelsen af ​​dit billede på i form af forskellige kontakter – kvalitet, ændre størrelse, definere osv. Du kan bruge en eller flere af dem til at justere størrelsen på billedet.