ImageMagick – Zmanjšanje velikosti datotek

Imagemagick Zmanjsanje Velikosti Datotek



Lepa in velika slika je skoraj odlična; ponavadi ga spremlja izjemna kakovost. Vendar pa je veliko, veliko primerov, ko si ne morete privoščiti slik, ki so prevelike. Včasih je vse, kar želite, slika dostojne velikosti ali celo manjša od določene velikosti. V takšnih primerih si programer želi le način, kako najti srednjo pot med kakovostjo in velikostjo. Teoretično, če se v celoti odrečete kakovosti, velikost datoteke ne bi smela biti problem, vendar je resnično najti kompromis med kakovostjo in velikostjo datoteke. V tej vadnici bomo razpravljali o načinih za zmanjšanje velikosti datoteke slik z uporabo ImageMagick (brez prevelikega ogrožanja kakovosti).

Namestitev programa ImageMagick

Za to bomo potrebovali ImageMagick, zato ga najprej namestimo:







sudo apt-get namestitev imagemagick



Stikalo kakovosti

Prvi in ​​najlažji način za zmanjšanje velikosti fotografije/slike/videoposnetka je zmanjšanje kakovosti fotografije. Stikalo za kakovost predstavlja stopnjo stiskanja JPEG/MIFF/PNG. Za JPEG in MPEG kakovost 1 predstavlja najvišjo stopnjo stiskanja in najnižjo kakovost slike, medtem ko 100 predstavlja najmanjšo stopnjo stiskanja in najboljšo kakovost.



Poglejmo torej primer; Slika drevesa, ki sem jo posnel, je ločljivost 4624 × 3468 in je velika 5,70226 MiB. To je originalna slika, natančneje JPEG.






Bistvo je, da želimo zmanjšati velikost slike. Poskusimo torej nastaviti nastavitve stikala za kakovost na nekaj nekoliko drugačnega in poglejmo, kaj se zgodi.

pretvori tree_4624x3468.jpg - kakovost 75 drevo_4624x3468_kakovost75.jpg
pretvori tree_4624x3468.jpg - kakovost 25 drevo_4624x3468_kakovost25.jpg



Zmanjšal sem kakovost na 75 za eno sliko in 25 za drugo. Izvirna slika je bila 5,70226 MiB, vendar je slika, ki je bila kakovosti 75, postala 2,74664 MiB, medtem ko je slika kakovosti 25 postala 1358250 (1,295 MiB). Tu bi se osebno odločil za 75-odstotno kakovost.



Zdaj, ker nas zanima tudi dejanska kakovost fotografije, naj vam pokažem fotografije:


drevo_4624x3468_kakovost75.jpg


drevo_4624x3468_kakovost25.jpg

Kot lahko vidite, kakovost ni bila preveč prizadeta, vendar je velikost datoteke manjša.

Zdaj sem poskusil narediti isto z PNG in dobil sem tole:


Torej je šlo z 23501600B (22,413MiB) na 22,2854MiB. Za JPEG je šlo s 5,70226 MiB na 1,295 MiB. Za formate brez izgube, kot je PNG, je preklop kakovosti veliko strožji.

Spreminjanje velikosti slik

Spreminjanje velikosti slik je še en način. Na primer:

pretvori tree_4624x3468.jpg -spremeni velikost petdeset % x50 % drevo_4624x3468_resize50 % .jpg



Kot lahko jasno vidite, je slika, ki je bila 4624 × 3468, imela 5,70226 MiB, medtem ko je tista, ki je bila 2312 × 1734, le 1,56287 MiB.

Stikalo za definiranje

Stikalu za določitev sledi ključ in njegova podana vrednost.

-definiraj ključ{=vrednost}…

Seznam možnih ključnih vrednosti najdete na .

Za PNG lahko uporabite png:compression-level=value. Vrednost je lahko od 0 do 9. Vrednost 0 vam bo zagotovila najmanjšo kompresijo, vendar je hitra, vrednost 9 pa vam bo zagotovila najboljšo kompresijo, vendar je najpočasnejša. Gre tudi vse vmes.

Na primer:

pretvori tree_4624x3468.png -določiti png:stopnja-stiskanja= 9 drevo_4624x3468_stiskanje9.png



V večini primerov programer želi nastaviti največjo velikost fotografije. Recimo, da želite za primer nastaviti največjo velikost fotografije. Za to lahko uporabite stikalo za določitev.

-definiraj jpeg:obseg={velikost}

pretvori drevo_4624x3468.jpg -določiti jpeg: obseg =1MB tree_4624x3468_extent1MB.jpg



Kot lahko vidite na zgornji sliki, ga je nastavil na ločljivost 4624×3468 in velikost 0,897MiB. Torej, kot ste zahtevali, je ImageMagick ustvaril fotografijo, ki je manjša od največje velikosti 1 MB.

Stikalo za trakove

Slike, ki jih posnamemo s fotoaparati, so opremljene z metapodatki. Z odstranitvijo metapodatkov lahko sprostite tudi nekaj prostora. V ImageMagicku to naredimo s stikalom traku.

pretvori tree_4624x3468.jpg - trak drevesni_trak.jpg



Tukaj, kot lahko vidite, je originalna fotografija 4624 × 3468 in 5,7 MiB. Toda slika, ki so ji bili odvzeti metapodatki, je velika 4,65 MiB.

Stikalo barvnega prostora

Poskusite lahko tudi spremeniti barvni prostor. V tem prvem primeru ga bom obarval sivo.

pretvori tree_4624x3468.jpg - barvni prostor sivo drevo_sivo.jpg - kakovost 75



Kot lahko vidite, zmanjšanje velikosti slike ni preveliko, je pa zmanjšanje – s 5,70226MiB na 4,44997MiB.

Druga možnost je, da sem poskusil tudi naslednje:

pretvori tree_4624x3468.png - barvni prostor sivo drevo_graypng.png



V primeru PNG je moja prvotna fotografija, to je 4624 × 3468, velika 22,42 MiB, ko pa jo obarvam sivo, postane 8,88 MiB.

Preklop barv

Prav tako lahko spremenite število uporabljenih barv. V tem primeru bom uporabil samo 16 barv v PNG.

pretvori tree_4624x3468.png -barve 16 tree_4624x3468_16colors.png



Prvotni PNG je bil 4624 × 3468 in 22,42 MiB. Ko pa sem barve spremenil na samo 16, je slika postala velika 4,27 MiB. In fotografija izgleda takole:


tree_4624x3468_16colors.png

Uporaba več stikal

Zdaj vam ni treba uporabiti enega samega stikala na fotografiji! Na sliki lahko kombinirate poljubno število stikal.

Torej, v primeru 1 bom posnel fotografijo drevesa v formatu PNG. Ta izvirna fotografija je velikosti 4624 × 3468 in 22,42 MiB, uporabil bom več stikal in videl, kam me bo pripeljalo.

pretvori tree_4624x3468.png - trak -spremeni velikost 75 % x75 % -določiti png:stopnja-stiskanja= 9 - barvni prostor siva  tree_4624x3468_reducedsize.png



Tako se je ta PNG z izvirno velikostjo 22,42 MiB spremenil v sliko velikosti 5,3 MiB. Nastala slika je približno 23 % prvotne velikosti.

Nato si oglejmo JPG.

pretvori tree_4624x3468.jpg - kakovost 75 -spremeni velikost 75 % x75 % - trak -barve 16 tree_4624x3468_reducedsize.jpg



Torej, tukaj smo za JPG prešli z izvirne velikosti 5,7 MiB na približno 2,2 MiB za barvno sliko.

Če pa ne bi bil obarvan:

pretvori tree_4624x3468.jpg - kakovost 75 -spremeni velikost 75 % x75 % - trak - barvni prostor sivo drevo_4624x3468_reducedsize.jpg



Tu smo šli od prvotne velikosti 5,7 MiB do 1,6 MiB za sivo sliko.

Če bi želeli, bi lahko nastavili tudi največjo omejitev velikosti. Bistvo je, da lahko zmanjšate velikost, če se res tako odločite.

Zaključek

Ko pišemo kodo za določen namen, običajno uporabljamo tudi slike in včasih si preprosto ne moremo privoščiti prevelikih slik. V takšnih primerih je glavni fokus programerja iskanje kompromisa med velikostjo slike in kakovostjo slike. Ne želimo uporabljati slik prenizke kakovosti, vendar si tudi ne moremo privoščiti velikih slik. Torej potrebujemo načine za zmanjšanje velikosti slike. ImageMagick ponuja različne načine za zmanjšanje velikosti vaše slike v obliki različnih stikal – kakovost, spreminjanje velikosti, definiranje itd. Uporabite lahko enega ali več, da prilagodite velikost slike.