ImageMagick – failisuuruse vähendamine

Imagemagick Failisuuruse Vahendamine



Ilus ja suur pilt on peaaegu suurepärane; sellega kaasneb tavaliselt tohutu kvaliteet. Siiski on palju, palju kordi, kui te ei saa endale lubada, et pildid on liiga suured. Mõnikord on kõik, mida soovite, korraliku suurusega pilti või isegi sellist, mis on teatud suurusest väiksem. Sellistel juhtudel soovib programmeerija vaid viisi, kuidas leida kesktee kvaliteedi ja suuruse vahel. Teoreetiliselt, kui loobute kvaliteedist täielikult, ei tohiks faili suurus olla probleem, kuid tegelik asi on leida kompromiss kvaliteedi ja faili suuruse vahel. Selles õpetuses käsitleme võimalusi piltide failisuuruse vähendamiseks ImageMagicki abil (kvaliteeti liigselt kahjustamata).

ImageMagicki installimine

Selleks vajame ImageMagicki, nii et kõigepealt installime selle:







sudo apt-get install pildimaagia



Kvaliteedi lüliti

Esimene ja lihtsaim viis foto/pildi/video suuruse vähendamiseks on vähendada foto kvaliteeti. Kvaliteedilüliti tähistab JPEG/MIFF/PNG tihendustaset. JPEG ja MPEG puhul tähistab kvaliteet 1 kõrgeimat tihendamisastet ja madalaimat pildikvaliteeti, 100 aga madalaimat tihendustaset ja parimat kvaliteeti.



Nii et vaatame näidet; minu tehtud pilt puust on eraldusvõimelt 4624×3468 ja 5,70226MiB. See on originaalpilt, täpsemalt JPEG.






Nüüd on asi selles, et tahame pildi suurust vähendada. Proovime seada kvaliteedilüliti sätted millekski teistsuguseks ja vaatame, mis juhtub.

teisenda puu_4624x3468.jpg - kvaliteet 75 tree_4624x3468_quality75.jpg
teisenda puu_4624x3468.jpg - kvaliteet 25 tree_4624x3468_quality25.jpg



Ühe pildi puhul alandasin kvaliteedi 75-ni ja teisel 25-ni. Algne pilt oli 5,70226 MiB, kuid 75 kvaliteediga kujutisest sai 2,74664 MiB, 25. kvaliteediga kujutisest aga 1358250 (1,295 MiB). Siin eelistaksin isiklikult 75% kvaliteeti.



Nüüd, kuna me hoolime ka foto tegelikust kvaliteedist, lubage mul teile fotosid näidata:


tree_4624x3468_quality75.jpg


tree_4624x3468_quality25.jpg

Nagu näete, ei ole kvaliteet liiga palju mõjutanud, kuid faili suurus on väiksem.

Nüüd proovisin sama teha PNG-ga ja see on see, mida ma sain:


Seega muutus see 23501600B (22.413MiB) 22.2854MiB-ni. JPEG puhul läks see 5,70226 MiB-lt 1,295 MiB-ni. Kadudeta vormingute (nt PNG) puhul on kvaliteedilüliti palju raskem.

Piltide suuruse muutmine

Piltide suuruse muutmine on veel üks võimalus. Näiteks:

teisenda puu_4624x3468.jpg -suuruse muutmine viiskümmend % x50 % puu_4624x3468_suuruse muutmine50 % .jpg



Nagu selgelt näha, oli 4624×3468 pildil 5,70226 MiB, 2312×1734 pildil aga ainult 1,56287 MiB.

Määratlemise lüliti

Määratlemislülitile järgneb võti ja selle väärtus.

-define key{=value}…

Võimalike võtmeväärtuste loendi leiate aadressilt .

PNG jaoks võite kasutada png:compression-level=value. Väärtus võib olla mis tahes vahemikus 0 kuni 9. Väärtus 0 tagab teile vähima tihendamise, kuid see on kiire, ja väärtus 9 tagab teile parima tihendamise, kuid on kõige aeglasem. Kõik vahepealne läheb ka.

Näiteks:

teisenda puu_4624x3468.png - määratleda png:compression-level= 9 tree_4624x3468_compression9.png



Enamikul juhtudel soovib programmeerija määrata fotole maksimaalse suuruse. Oletame näiteks, et soovite määrata fotole maksimaalse suuruse. Selleks saate kasutada defineerimislülitit.

-define jpeg:extent={size}

teisenda  puu_4624x3468.jpg - määratleda jpeg: ulatus =1 MB tree_4624x3468_extent1MB.jpg



Nagu näete ülaloleval pildil, seadis see selle eraldusvõimeks 4624 × 3468 ja suuruseks 0,897 MiB. Niisiis, nagu te soovisite, on ImageMagick loonud foto, mis on väiksem kui maksimaalne suurus 1 MB.

Riba lüliti

Kaameratega jäädvustatud piltidel on metaandmed. Ka metaandmete eemaldamine võib ruumi vabastada. ImageMagickis teeme seda ribalülitiga.

teisenda puu_4624x3468.jpg - riba tree_strip.jpg



Siin, nagu näha, on originaalfoto 4624×3468 ja 5,7MiB. Kuid pilt, mille metaandmed on eemaldatud, on 4,65 MiB.

Värviruumi lüliti

Võite proovida ka värviruumi muuta. Esimesel juhul muudan selle halliks.

teisenda puu_4624x3468.jpg - värviruum hall puu_hall.jpg - kvaliteet 75



Nagu näete, pole pildi suuruse vähendamine liiga suur, kuid vähenemine toimub - 5,70226MiB-lt 4,44997MiB-le.

Teise võimalusena proovisin ka järgmist:

teisenda puu_4624x3468.png - värviruum hall puu_graypng.png



PNG puhul on minu algne foto, mis on 4624 × 3468, 22,42 MiB, kuid kui ma selle halliks muudan, muutub see 8,88 MiB.

Värvide lüliti

Samuti saate muuta kasutatavate värvide arvu. Sel konkreetsel juhul kasutan PNG-s ainult 16 värvi.

teisenda puu_4624x3468.png -värvid 16 tree_4624x3468_16colors.png



Algne PNG oli 4624 × 3468 ja 22,42 MiB. Kui aga muutsin värvid vaid 16 peale, sai pildi suuruseks 4,27MiB. Ja foto näeb välja selline:


tree_4624x3468_16colors.png

Mitme lüliti kasutamine

Nüüd ei pea te fotol ühte lülitit kasutama! Saate pildil kombineerida nii palju lüliteid, kui soovite.

Nii et näites 1 teen puust PNG-foto. See originaalfoto on 4624 × 3468 ja 22,42 MiB suurune ning ma kasutan mitut lülitit ja vaatan, kuhu see mind viib.

teisenda puu_4624x3468.png - riba -suuruse muutmine 75 % x75 % - määratleda png:compression-level= 9 - värviruum hall puu_4624x3468_reducedsize.png



Nii sai sellest 22,42 MiB algsuurusega PNG-st 5,3 MiB suurune pilt. Saadud pilt on umbes 23% originaalsuurusest.

Järgmisena vaatame JPG-d.

teisenda puu_4624x3468.jpg - kvaliteet 75 -suuruse muutmine 75 % x75 % - riba -värvid 16 tree_4624x3468_reducedsize.jpg



Nii et siin, JPG puhul, läksime algselt 5,7 MiB-lt värvilise pildi jaoks umbes 2,2 MiB-ni.

Aga kui see poleks värviline:

teisenda puu_4624x3468.jpg - kvaliteet 75 -suuruse muutmine 75 % x75 % - riba - värviruum hall puu_4624x3468_reducedsize.jpg



Siin läksime algselt 5,7 MiB suuruselt halli pildi jaoks 1,6 MiB-ni.

Kui oleksite soovinud, oleksite võinud seada ka suurusele maksimaalse piirangu. Asi on selles, et saate suurust vähendada, kui olete sellele tõesti mõelnud.

Järeldus

Konkreetsel eesmärgil koodi kirjutades kipume kasutama ka pilte ja mõnikord ei saa me endale lubada liiga suuri pilte. Sellistel juhtudel on programmeerija põhirõhk kompromissi leidmisel pildi suuruse ja pildi kvaliteedi vahel. Me ei taha kasutada liiga madala kvaliteediga pilte, kuid me ei saa endale lubada ka suuri pilte. Seega vajame võimalusi pildi suuruse vähendamiseks. ImageMagick pakub erinevaid võimalusi pildi suuruse vähendamiseks erinevate lülitite näol – kvaliteedi, suuruse muutmise, määratlemise jne. Saate kasutada ühte või mitut neist pildi suuruse reguleerimiseks.