ImageMagick – Redusere filstørrelser

Imagemagick Redusere Filstorrelser



Et vakkert og stort bilde er omtrent flott; det er vanligvis ledsaget av enorm kvalitet. Imidlertid er det mange, mange ganger når du ikke har råd til å ha bilder som er for store i størrelse. Noen ganger er alt du vil ha et bilde i anstendig størrelse eller til og med et som er mindre enn en bestemt gitt størrelse. I slike tilfeller er alt programmereren ønsker en måte å finne en mellomting mellom kvalitet og størrelse. Teoretisk sett, hvis du gir opp kvalitet helt, burde ikke filstørrelsen være et problem, men den virkelige avtalen er å finne et kompromiss mellom kvalitet og filstørrelse. I denne opplæringen vil vi diskutere måter å redusere filstørrelsen på bilder ved å bruke ImageMagick (uten å gå på kompromiss med kvaliteten for mye).

Installerer ImageMagick

Vi trenger ImageMagick for dette, så først, la oss installere det:





sudo apt-get install imagemagick



Kvalitetsbryteren

Den første og enkleste måten å redusere størrelsen på et bilde/bilde/video er å redusere kvaliteten på bildet. Kvalitetsbryteren representerer JPEG/MIFF/PNG-komprimeringsnivået. For JPEG og MPEG representerer en kvalitet på 1 det høyeste nivået av komprimering og den laveste bildekvaliteten, mens 100 representerer det minste nivået av komprimering og den beste kvaliteten.



Så la oss se på et eksempel; bildet jeg tok av et tre er 4624×3468 når det gjelder oppløsning og er 5,70226MiB. Dette er det originale bildet, en JPEG, for å være spesifikk.






Nå er poenget at vi ønsker å redusere størrelsen på bildet. Så la oss prøve å sette kvalitetsbryterinnstillingene til noe litt annerledes og se hva som skjer.

konverter tre_4624x3468.jpg -kvalitet 75 tree_4624x3468_quality75.jpg
konverter tre_4624x3468.jpg -kvalitet 25 tree_4624x3468_quality25.jpg



Jeg reduserte kvaliteten til 75 for ett bilde og 25 for et annet. Det opprinnelige bildet var 5,70226MiB, men bildet som hadde en kvalitet på 75 ble 2,74664MiB mens det med kvalitet 25 ble 1358250 (1,295MiB). Her vil jeg personlig gå med 75% kvalitet.



Nå, siden vi også bryr oss om den faktiske kvaliteten på bildet, la meg vise deg bildene:


tree_4624x3468_quality75.jpg


tree_4624x3468_quality25.jpg

Som du kan se, har ikke kvaliteten blitt påvirket for mye, men filstørrelsen er mindre.

Nå prøvde jeg å gjøre det samme med PNG, og dette er hva jeg fikk:


Så det gikk fra 23501600B (22.413MiB) til 22.2854MiB. For en JPEG gikk den fra 5,70226MiB til 1,295MiB. For formater uten tap som PNG er kvalitetsbryteren mye tøffere.

Endre størrelse på bilder

Endre størrelse på bilder er en annen måte. For eksempel:

konverter tre_4624x3468.jpg - endre størrelse femti % x50 % tree_4624x3468_resize50 % .jpg



Som du tydelig kan se var bildet som var 4624×3468 5,70226MiB, mens det som var 2312×1734 bare er 1,56287MiB.

Definer-bryteren

Definer-bryteren etterfølges av en nøkkel og dens gitte verdi.

-definer nøkkel{=verdi}...

Listen over mulige nøkkelverdier finner du på .

For PNG kan du bruke png:compression-level=value. Verdien kan være alt fra 0 til 9. En verdi på 0 vil gi deg minst komprimering, men det er raskt, og en verdi på 9 vil gi deg den beste komprimeringen, men er den tregeste. Alt i mellom går også.

For eksempel:

convert tree_4624x3468.png -definere png:komprimeringsnivå= 9 tree_4624x3468_compression9.png



I de fleste tilfeller er det en programmerer ønsker å angi en maksimal størrelse for et bilde. Så, anta for eksempel at du vil angi en maksimal størrelse for et bilde. Du kan bruke definisjonsbryteren for å gjøre dette.

-define jpeg:extent={size}

konverter  tree_4624x3468.jpg -definere jpeg: utstrekning =1MB tree_4624x3468_extent1MB.jpg



Som du kan se på bildet over, satte den den til en oppløsning på 4624×3468 og en størrelse på 0,897MiB. Så, som du ba om, har ImageMagick laget et bilde som er mindre enn den maksimale størrelsen på 1 MB.

Strip Switch

Bilder vi tar med kameraer kommer med Metadata. Fjerning av metadata kan også rydde opp litt plass. I ImageMagick gjør vi dette ved å bruke strip-bryteren.

konverter tre_4624x3468.jpg -strimmel tree_strip.jpg



Her, som du kan se, er originalbildet 4624×3468 og 5,7MiB. Men bildet som har fått fjernet metadata er 4,65MiB.

Fargeromsbryter

Du kan også prøve å bytte opp fargerommet. I dette første tilfellet vil jeg gjøre det grått.

konverter tre_4624x3468.jpg -farge rom grått tre_grå.jpg -kvalitet 75



Som du kan se, er reduksjonen av bildestørrelsen ikke for stor, men det er en reduksjon – fra 5,70226MiB til 4,44997MiB.

Alternativt har jeg også prøvd følgende:

convert tree_4624x3468.png -farge rom grå tre_graypng.png



Når det gjelder en PNG, er originalbildet mitt, som er 4624×3468, 22,42 MB, men når jeg gjør det grått, blir det 8,88 MB.

Fargebytte

Du kan også velge å endre antall farger som brukes. I dette spesielle tilfellet kommer jeg til å bruke bare 16 farger på en PNG.

convert tree_4624x3468.png -farger 16 tree_4624x3468_16colors.png



Den originale PNG var 4624×3468 og 22,42MiB. Men da jeg endret fargene til bare 16, ble bildet 4,27MiB i størrelse. Og bildet ser slik ut:


tree_4624x3468_16colors.png

Bruke flere brytere

Nå trenger du ikke bruke en eneste bryter på et bilde! Du kan kombinere så mange brytere du vil på et bilde.

Så, i eksempel 1, skal jeg ta et PNG-bilde av et tre. Dette originalbildet er 4624×3468 og 22,42MiB i størrelse, og jeg kommer til å bruke flere brytere og se hvor det tar meg.

convert tree_4624x3468.png -strimmel - endre størrelse 75 % x75 % -definere png:komprimeringsnivå= 9 -farge rom grå  tree_4624x3468_reducedsize.png



Så denne PNG-en, med en originalstørrelse på 22,42MiB, ble til et bilde på 5,3MiB. Det resulterende bildet er omtrent 23 % av originalstørrelsen.

Så la oss deretter sjekke ut en JPG.

konverter tre_4624x3468.jpg -kvalitet 75 - endre størrelse 75 % x75 % -strimmel -farger 16 tree_4624x3468_reducedsize.jpg



Så her, for JPG, gikk vi fra en original størrelse på 5,7 MB til omtrent 2,2 MB for et farget bilde.

Men hvis det ikke var farget:

konverter tre_4624x3468.jpg -kvalitet 75 - endre størrelse 75 % x75 % -strimmel -farge rom grått tre_4624x3468_reducedsize.jpg



Her gikk vi fra en original størrelse på 5,7 MB til 1,6 MB for et grått bilde.

Hvis du hadde ønsket det, kunne du også ha satt en maksgrense på størrelsen. Poenget er at du kan redusere størrelsen hvis du virkelig bestemmer deg for det.

Konklusjon

Når vi skriver kode for et bestemt formål, har vi en tendens til å bruke bilder også, og noen ganger har vi rett og slett ikke råd til å ha bilder som er for store. I slike tilfeller er hovedfokuset til programmereren å finne et kompromiss mellom størrelsen på bildet og kvaliteten på bildet. Vi ønsker ikke å bruke bilder som har for lav kvalitet, men vi har heller ikke råd til å ha store bilder. Så vi trenger måter å redusere størrelsen på bildet på. ImageMagick tilbyr en rekke måter å redusere størrelsen på bildet på i form av forskjellige brytere – kvalitet, endre størrelse, definere osv. Du kan bruke en eller flere av dem til å justere størrelsen på bildet.