ImageMagick — failu izmēru samazināšana

Imagemagick Failu Izmeru Samazinasana



Skaists un liels attēls ir gandrīz lielisks; to parasti pavada izcila kvalitāte. Tomēr ir daudzas, daudzas reizes, kad nevarat atļauties attēlus, kas ir pārāk lieli. Reizēm viss, ko vēlaties, ir pienācīga izmēra attēls vai pat tāds, kas ir mazāks par noteiktu izmēru. Šādos gadījumos viss, ko programmētājs vēlas, ir veids, kā atrast vidusceļu starp kvalitāti un izmēru. Teorētiski, ja jūs pilnībā atsakāties no kvalitātes, faila izmēram nevajadzētu būt problēmai, taču patiesais darījums ir atrast kompromisu starp kvalitāti un faila lielumu. Šajā apmācībā mēs apspriedīsim veidus, kā samazināt attēlu faila lielumu, izmantojot ImageMagick (pārāk neapdraudot kvalitāti).

ImageMagick instalēšana

Šim nolūkam mums būs nepieciešams ImageMagick, tāpēc vispirms instalēsim to:







sudo apt-get install imagemagick



Kvalitātes slēdzis

Pirmais un vienkāršākais veids, kā samazināt fotoattēla/attēla/video izmēru, ir samazināt fotoattēla kvalitāti. Kvalitātes slēdzis norāda JPEG/MIFF/PNG saspiešanas līmeni. JPEG un MPEG gadījumā kvalitāte 1 apzīmē augstāko saspiešanas līmeni un zemāko attēla kvalitāti, savukārt 100 apzīmē zemāko saspiešanas līmeni un labāko kvalitāti.



Tātad, aplūkosim piemēru; attēls, ko uzņēmu ar koku, ir 4624 × 3468 izšķirtspējas ziņā un ir 5,70226 MiB. Konkrētāk, šis ir oriģinālais attēls, JPEG.






Tagad runa ir par to, ka mēs vēlamies samazināt attēla izmēru. Tāpēc mēģināsim iestatīt kvalitātes slēdža iestatījumus uz kaut ko nedaudz atšķirīgu un redzēsim, kas notiks.

konvertēt tree_4624x3468.jpg - kvalitāte 75 tree_4624x3468_quality75.jpg
konvertēt tree_4624x3468.jpg - kvalitāte 25 tree_4624x3468_quality25.jpg



Vienai bildei samazināju kvalitāti līdz 75, otrai 25. Sākotnējais attēls bija 5,70226 MiB, bet attēls, kura kvalitāte bija 75, kļuva par 2,74664 MiB, bet 25. mib. mib – 1358250 (1,295 MiB). Šeit es personīgi izvēlētos 75% kvalitāti.



Tagad, tā kā mums rūp arī faktiskā fotoattēla kvalitāte, ļaujiet man jums parādīt fotoattēlus:


tree_4624x3468_quality75.jpg


tree_4624x3468_quality25.jpg

Kā redzat, kvalitāte nav pārāk ietekmēta, taču faila lielums ir mazāks.

Tagad es mēģināju darīt to pašu ar PNG, un tas ir tas, ko es saņēmu:


Tātad tas mainījās no 23501600B (22.413MiB) līdz 22.2854MiB. JPEG formātā tas palielinājās no 5,70226 MiB līdz 1,295 MiB. Nezaudētiem formātiem, piemēram, PNG, kvalitātes slēdzis ir daudz grūtāks.

Attēlu izmēru maiņa

Attēlu izmēru maiņa ir vēl viens veids. Piemēram:

konvertēt tree_4624x3468.jpg - mainīt izmērus piecdesmit % x50 % koks_4624x3468_izmēra maiņa50 % .jpg



Kā skaidri redzat, attēls, kas bija 4624 × 3468, bija 5,70226 MiB, savukārt 2312 × 1734 MiB attēls ir tikai 1,56287 MiB.

Definēšanas slēdzis

Definēt slēdzi seko atslēga un tā dotā vērtība.

-definēt atslēgu{=value}…

Iespējamo galveno vērtību sarakstu var atrast vietnē .

PNG formātam varat izmantot png:compression-level=value. Vērtība var būt no 0 līdz 9. Vērtība 0 nodrošinās vismazāko saspiešanu, taču tā notiek ātri, un vērtība 9 nodrošinās vislabāko saspiešanu, taču tā ir vislēnākā. Viss pa vidu arī der.

Piemēram:

konvertēt tree_4624x3468.png - definēt png:compression-level= 9 tree_4624x3468_compression9.png



Vairumā gadījumu programmētājs vēlas iestatīt fotoattēla maksimālo izmēru. Tātad, pieņemsim, ka vēlaties iestatīt maksimālo fotoattēla izmēru. Lai to izdarītu, varat izmantot definēšanas slēdzi.

-define jpeg:extent={size}

konvertēt koks_4624x3468.jpg - definēt jpeg: apjomu =1 MB koks_4624x3468_extent1MB.jpg



Kā redzat augstāk esošajā attēlā, tas iestatīja to uz 4624 × 3468 izšķirtspēju un 0,897 MiB izmēru. Tātad, kā jūs pieprasījāt, ImageMagick ir izveidojis fotoattēlu, kas ir mazāks par maksimālo izmēru 1 MB.

Sloksnes slēdzis

Ar kamerām uzņemtajiem attēliem ir metadati. Metadatu noņemšana var arī atbrīvot vietu. Programmā ImageMagick mēs to darām, izmantojot sloksnes slēdzi.

konvertēt tree_4624x3468.jpg - sloksne tree_strip.jpg



Šeit, kā redzat, oriģinālais fotoattēls ir 4624 × 3468 un 5,7 MiB. Bet attēlam, kuram ir noņemti metadati, ir 4,65 MiB.

Krāsu telpas slēdzis

Varat arī mēģināt mainīt krāsu telpu. Šajā pirmajā gadījumā es to padarīšu pelēku.

konvertēt tree_4624x3468.jpg -krāsu telpa pelēks koks_pelēks.jpg - kvalitāte 75



Kā redzams, attēla izmēra samazinājums nav pārāk liels, taču ir samazinājums – no 5.70226MiB uz 4.44997MiB.

Alternatīvi, es izmēģināju arī šādas darbības:

konvertēt tree_4624x3468.png -krāsu telpa pelēks koks_graypng.png



PNG gadījumā mans sākotnējais fotoattēls, kas ir 4624 × 3468, ir 22,42 MiB, bet, kad to pagriežu pelēkā krāsā, tas kļūst par 8,88 MiB.

Krāsu slēdzis

Varat arī izvēlēties mainīt izmantoto krāsu skaitu. Šajā konkrētajā gadījumā es izmantošu tikai 16 krāsas PNG formātā.

konvertēt tree_4624x3468.png - krāsas 16 tree_4624x3468_16colors.png



Sākotnējais PNG bija 4624 × 3468 un 22,42 MiB. Tomēr, mainot krāsas tikai uz 16, attēla izmērs kļuva 4,27 MiB. Un fotogrāfija izskatās šādi:


tree_4624x3468_16colors.png

Vairāku slēdžu izmantošana

Tagad fotoattēlam nav jāizmanto viens slēdzis! Attēlā varat apvienot tik daudz slēdžu, cik vēlaties.

Tātad, 1. piemērā, es uzņemšu koka PNG fotoattēlu. Šis oriģinālais fotoattēls ir 4624 × 3468 un 22,42 MiB liels, un es izmantošu vairākus slēdžus, lai redzētu, kur tas mani aizvedīs.

konvertēt tree_4624x3468.png - sloksne - mainīt izmērus 75 % x75 % - definēt png:compression-level= 9 -krāsu telpa pelēks koks_4624x3468_reducedsize.png



Tātad šis PNG ar sākotnējo izmēru 22,42 MiB pārvērtās par 5,3 MiB attēlu. Iegūtais attēls ir aptuveni 23% no sākotnējā izmēra.

Tātad tālāk apskatīsim JPG.

konvertēt tree_4624x3468.jpg - kvalitāte 75 - mainīt izmērus 75 % x75 % - sloksne - krāsas 16 koks_4624x3468_reducedsize.jpg



Tātad, šeit, JPG formātā, mēs mainījāmies no sākotnējā izmēra 5,7 MiB uz aptuveni 2,2 MiB krāsainam attēlam.

Bet, ja tas nebūtu krāsots:

konvertēt tree_4624x3468.jpg - kvalitāte 75 - mainīt izmērus 75 % x75 % - sloksne -krāsu telpa pelēks koks_4624x3468_reducedsize.jpg



Šeit mēs mainījāmies no sākotnējā izmēra 5,7 MiB uz 1,6 MiB pelēkam attēlam.

Ja būtu vēlējies, būtu varējis iestatīt arī maksimālo izmēra ierobežojumu. Lieta ir tāda, ka jūs varat samazināt izmēru, ja patiešām to domājat.

Secinājums

Rakstot kodu noteiktam mērķim, mēs mēdzam izmantot arī attēlus, un dažreiz mēs vienkārši nevaram atļauties attēlus, kas ir pārāk lieli. Šādos gadījumos programmētāja galvenais mērķis ir atrast kompromisu starp attēla izmēru un attēla kvalitāti. Mēs nevēlamies izmantot pārāk zemas kvalitātes attēlus, taču nevaram atļauties arī liela izmēra attēlus. Tātad mums ir nepieciešami veidi, kā samazināt attēla izmēru. ImageMagick piedāvā dažādus veidus, kā samazināt attēla izmēru dažādu slēdžu veidā – kvalitātes, izmēra maiņas, definēšanas u.c. Varat izmantot vienu vai vairākus no tiem, lai pielāgotu attēla izmēru.