ImageMagick – Reducerea dimensiunilor fișierelor

Imagemagick Reducerea Dimensiunilor Fisierelor



O imagine frumoasă și mare este aproape grozavă; este de obicei însoțit de o calitate extraordinară. Cu toate acestea, există multe, de multe ori când nu vă puteți permite să aveți imagini de dimensiuni prea mari. Uneori, tot ce vrei este o imagine de dimensiuni decente sau chiar una care este mai mică decât o anumită dimensiune dată. În astfel de cazuri, tot ceea ce își dorește programatorul este o modalitate de a găsi o cale de mijloc între calitate și dimensiune. Teoretic, dacă renunțați cu totul la calitate, atunci dimensiunea fișierului nu ar trebui să fie o problemă, dar adevărata afacere este să găsiți un compromis între calitate și dimensiunea fișierului. În acest tutorial, vom discuta modalități de a reduce dimensiunea fișierului imaginilor folosind ImageMagick (fără a compromite prea mult calitatea).

Instalarea ImageMagick

Vom avea nevoie de ImageMagick pentru asta, așa că mai întâi să-l instalăm:







sudo apt-get install magicmagick



Comutatorul de calitate

Prima și cea mai simplă modalitate de a reduce dimensiunea unei fotografii/imagine/video este reducerea calității fotografiei. Comutatorul de calitate reprezintă nivelul de compresie JPEG/MIFF/PNG. Pentru JPEG și MPEG, o calitate de 1 reprezintă cel mai înalt nivel de compresie și cea mai scăzută calitate a imaginii, în timp ce 100 reprezintă cel mai mic nivel de compresie și cea mai bună calitate.



Deci, să ne uităm la un exemplu; poza pe care am făcut-o unui copac este de 4624×3468 ca rezoluție și este de 5,70226MiB. Aceasta este imaginea originală, un JPEG, mai exact.






Acum, ideea este că vrem să reducem dimensiunea imaginii. Deci, să încercăm să setăm setările comutatorului de calitate la ceva puțin diferit și să vedem ce se întâmplă.

convert tree_4624x3468.jpg -calitate 75 tree_4624x3468_quality75.jpg
convert tree_4624x3468.jpg -calitate 25 tree_4624x3468_quality25.jpg



Am redus calitatea la 75 pentru o fotografie și 25 pentru alta. Imaginea originală a fost de 5,70226 MiB, dar imaginea care avea o calitate de 75 a devenit 2,74664 MiB, în timp ce cea de calitate 25 a devenit 1358250 (1,295 MiB). Aici, eu personal aș merge cu o calitate de 75%.



Acum, deoarece ne pasă și de calitatea reală a fotografiei, permiteți-mi să vă arăt fotografiile:


tree_4624x3468_quality75.jpg


tree_4624x3468_quality25.jpg

După cum puteți vedea, calitatea nu a fost afectată prea mult, dar dimensiunea fișierului este mai mică.

Acum, am încercat să fac același lucru cu PNG și iată ce am obținut:


Deci, a trecut de la 23501600B (22,413 MiB) la 22,2854 MiB. Pentru un JPEG, a trecut de la 5,70226 MiB la 1,295 MiB. Pentru formatele fără pierderi, cum ar fi PNG, comutatorul de calitate este mult mai dur.

Redimensionarea imaginilor

Redimensionarea imaginilor este o altă modalitate. De exemplu:

convert tree_4624x3468.jpg -redimensionare cincizeci % x50 % tree_4624x3468_resize50 % .jpg



După cum puteți vedea clar, imaginea care a fost 4624×3468 a fost de 5,70226 MiB, în timp ce cea care a fost 2312×1734 este de doar 1,56287 MiB.

Comutatorul Definire

Comutatorul define este urmat de o cheie și valoarea sa dată.

-definiți cheia{=valoarea}...

Lista posibilelor valori cheie poate fi găsită la .

Pentru PNG, puteți utiliza png:compression-level=value. Valoarea poate fi de la 0 la 9. O valoare de 0 vă va oferi cea mai mică compresie, dar este rapidă, iar o valoare de 9 vă va oferi cea mai bună compresie, dar este cea mai lentă. Merge și orice între ele.

De exemplu:

converti arbore_4624x3468.png -defini png:compression-level= 9 tree_4624x3468_compression9.png



În cele mai multe cazuri, ceea ce dorește un programator este să stabilească o dimensiune maximă pentru o fotografie. Deci, să presupunem, de exemplu, că doriți să setați o dimensiune maximă pentru o fotografie. Puteți utiliza comutatorul define pentru a face acest lucru.

-define jpeg:extent={size}

convertiți  tree_4624x3468.jpg -defini jpeg: măsură =1MB arbore_4624x3468_extent1MB.jpg



După cum puteți vedea în imaginea de mai sus, a setat-o ​​la o rezoluție de 4624×3468 și o dimensiune de 0,897 MiB. Deci, așa cum ați cerut, ImageMagick a creat o fotografie care este mai mică decât dimensiunea maximă de 1 MB.

Comutator de bandă

Imaginile pe care le facem cu camerele vin cu Metadate. Eliminarea metadatelor poate, de asemenea, elibera spațiu. În ImageMagick, facem acest lucru folosind comutatorul de bandă.

convert tree_4624x3468.jpg -bandă tree_strip.jpg



Aici, după cum puteți vedea, fotografia originală este de 4624×3468 și 5,7 MiB. Dar imaginea căreia i-a fost eliminată Metadatele este de 4,65 MiB.

Comutator de spațiu de culoare

De asemenea, puteți încerca să comutați spațiul de culoare. În această primă instanță, o voi face gri.

convert tree_4624x3468.jpg -spațiul de culoare copac gri_gri.jpg -calitate 75



După cum puteți vedea, reducerea dimensiunii imaginii nu este prea mare, dar există o reducere - de la 5,70226MiB la 4,44997MiB.

Alternativ, am încercat și următoarele:

converti arbore_4624x3468.png -spațiul de culoare copac gri_graypng.png



În cazul unui PNG, fotografia mea originală, adică 4624×3468, este de 22,42 MiB, dar când o devin gri, devine 8,88 MiB.

Comutator de culori

De asemenea, puteți opta pentru a modifica numărul de culori utilizate. În acest caz particular, voi folosi doar 16 culori pe un PNG.

converti arbore_4624x3468.png -culori 16 copac_4624x3468_16culori.png



PNG original a fost 4624×3468 și 22,42 MiB. Cu toate acestea, când am schimbat culorile la doar 16, imaginea a devenit 4,27 MiB în dimensiune. Și fotografia arată așa:


copac_4624x3468_16culori.png

Utilizarea mai multor comutatoare

Acum, nu trebuie să utilizați un singur comutator pe o fotografie! Puteți combina câte comutatoare doriți pe o imagine.

Deci, în exemplul 1, voi face o fotografie PNG a unui copac. Această fotografie originală are o dimensiune de 4624×3468 și 22,42 MiB și voi folosi mai multe comutatoare și voi vedea unde mă duce.

convert tree_4624x3468.png -bandă -redimensionare 75 % x75 % -defini png:compression-level= 9 -spațiul de culoare gri  tree_4624x3468_reducedsize.png



Deci, acest PNG, cu o dimensiune originală de 22,42 MiB, s-a transformat într-o imagine de 5,3 MiB. Imaginea rezultată este de aproximativ 23% din dimensiunea originală.

Deci, în continuare, să verificăm un JPG.

convert tree_4624x3468.jpg -calitate 75 -redimensionare 75 % x75 % -bandă -culori 16 tree_4624x3468_reducedsize.jpg



Deci, aici, pentru JPG, am trecut de la o dimensiune originală de 5,7 MiB la aproximativ 2,2 MiB pentru o imagine colorată.

Dar dacă nu ar fi colorat:

convert tree_4624x3468.jpg -calitate 75 -redimensionare 75 % x75 % -bandă -spațiul de culoare copac gri_4624x3468_reducedsize.jpg



Aici, am trecut de la o dimensiune originală de 5,7 MiB la 1,6 MiB pentru o imagine gri.

Dacă ai fi vrut, ai fi putut stabili și o limită maximă pentru dimensiune. Ideea este că puteți reduce dimensiunea dacă vă gândiți cu adevărat la asta.

Concluzie

Când scriem cod pentru un anumit scop, avem tendința de a folosi și imagini și, uneori, pur și simplu nu ne putem permite să avem imagini de dimensiuni prea mari. În astfel de cazuri, obiectivul principal al programatorului este să găsească un compromis între dimensiunea imaginii și calitatea imaginii. Nu dorim să folosim imagini cu o calitate prea scăzută, dar nici nu ne putem permite să avem imagini de dimensiuni mari. Deci, avem nevoie de modalități de a reduce dimensiunea imaginii. ImageMagick oferă o varietate de moduri de a reduce dimensiunea imaginii dvs. sub formă de diferite comutatoare – calitate, redimensionare, definire etc. Puteți utiliza una sau mai multe dintre ele pentru a regla dimensiunea imaginii.