ImageMagick – Riduzione delle dimensioni dei file

Imagemagick Riduzione Delle Dimensioni Dei File



Un'immagine bella e grande è semplicemente fantastica; di solito è accompagnato da una qualità eccezionale. Tuttavia, ci sono molte, molte volte in cui non puoi permetterti di avere immagini di dimensioni troppo grandi. A volte, tutto ciò che desideri è un'immagine di dimensioni decenti o anche inferiore a una determinata dimensione. In questi casi, tutto ciò che il programmatore desidera è un modo per trovare una via di mezzo tra qualità e dimensioni. In teoria, se rinunci del tutto alla qualità, la dimensione del file non dovrebbe essere un problema, ma il vero problema è trovare un compromesso tra qualità e dimensione del file. In questo tutorial, discuteremo dei modi per ridurre le dimensioni del file delle immagini utilizzando ImageMagick (senza compromettere troppo la qualità).

Installazione di ImageMagick

Avremo bisogno di ImageMagick per questo, quindi prima installiamolo:







sudo apt-get install imagemagick



Il cambio di qualità

Il primo e più semplice modo per ridurre le dimensioni di una foto/immagine/video è ridurre la qualità della foto. L'interruttore di qualità rappresenta il livello di compressione JPEG/MIFF/PNG. Per JPEG e MPEG, una qualità pari a 1 rappresenta il livello di compressione più alto e la qualità dell'immagine più bassa, mentre 100 rappresenta il livello di compressione minimo e la qualità migliore.



Quindi diamo un'occhiata a un esempio; l'immagine che ho scattato a un albero è 4624 × 3468 in termini di risoluzione ed è 5,70226 MiB. Questa è l'immagine originale, un JPEG, per essere precisi.






Ora, il punto è che vogliamo ridurre le dimensioni dell'immagine. Quindi proviamo a impostare le impostazioni dell'interruttore di qualità su qualcosa di leggermente diverso e vediamo cosa succede.

convertire tree_4624x3468.jpg -qualità 75 tree_4624x3468_quality75.jpg
convertire tree_4624x3468.jpg -qualità 25 tree_4624x3468_quality25.jpg



Ho ridotto la qualità a 75 per un'immagine ea 25 per un'altra. L'immagine originale era di 5,70226 MiB, ma l'immagine di qualità 75 è diventata 2,74664 MiB mentre quella di qualità 25 è diventata 1358250 (1,295 MiB). Qui, personalmente andrei con la qualità del 75%.



Ora, visto che ci interessa anche la qualità effettiva della foto, lascia che ti mostri le foto:


tree_4624x3468_quality75.jpg


tree_4624x3468_quality25.jpg

Come puoi vedere, la qualità non è stata influenzata troppo, ma la dimensione del file è inferiore.

Ora, ho provato a fare lo stesso con PNG, e questo è quello che ho ottenuto:


Quindi, è passato da 23501600B (22.413MiB) a 22.2854MiB. Per un JPEG, è passato da 5,70226 MiB a 1,295 MiB. Per i formati senza perdite come PNG, il cambio di qualità è molto più difficile.

Ridimensionamento delle immagini

Il ridimensionamento delle immagini è un altro modo. Per esempio:

convertire tree_4624x3468.jpg -ridimensionare cinquanta % x50 % tree_4624x3468_resize50 % .jpg



Come puoi vedere chiaramente, l'immagine che era 4624 × 3468 era 5,70226 MiB, mentre quella che era 2312 × 1734 è solo 1,56287 MiB.

L'interruttore di definizione

L'opzione di definizione è seguita da una chiave e dal relativo valore.

-define chiave{=valore}…

L'elenco dei possibili valori chiave è disponibile all'indirizzo .

Per PNG, puoi usare png:compression-level=value. Il valore può essere qualsiasi da 0 a 9. Un valore di 0 ti fornirà la compressione minima, ma è veloce, e un valore di 9 ti fornirà la compressione migliore ma è la più lenta. Va bene anche qualsiasi cosa nel mezzo.

Per esempio:

convert tree_4624x3468.png -definire png:livello-di-compressione= 9 tree_4624x3468_compression9.png



Nella maggior parte dei casi, ciò che un programmatore desidera è impostare una dimensione massima per una foto. Quindi, supponiamo per un'istanza di voler impostare una dimensione massima per una foto. È possibile utilizzare l'opzione define per eseguire questa operazione.

-define jpeg:extent={dimensione}

convertire  tree_4624x3468.jpg -definire jpeg: estensione =1MB tree_4624x3468_extent1MB.jpg



Come puoi vedere nell'immagine sopra, lo ha impostato su una risoluzione di 4624 × 3468 e una dimensione di 0,897 MiB. Quindi, come hai richiesto, ImageMagick ha creato una foto che è inferiore alla dimensione massima di 1 MB.

Interruttore striscia

Le foto che scattiamo con le fotocamere vengono fornite con i metadati. La rimozione dei metadati può anche liberare spazio. In ImageMagick, lo facciamo usando lo strip switch.

convertire tree_4624x3468.jpg -striscia striscia_albero.jpg



Qui, come puoi vedere, la foto originale è 4624×3468 e 5,7 MiB. Ma l'immagine a cui sono stati rimossi i metadati è di 4,65 MiB.

Interruttore dello spazio colore

Puoi anche provare a cambiare lo spazio colore. In questo primo caso, lo trasformerò in grigio.

convertire tree_4624x3468.jpg -spazio colore albero grigio_grigio.jpg -qualità 75



Come puoi vedere, la riduzione della dimensione dell'immagine non è eccessiva, ma c'è una riduzione - da 5,70226 MiB a 4,44997 MiB.

In alternativa, ho anche provato quanto segue:

convert tree_4624x3468.png -spazio colore albero grigio_graypng.png



Nel caso di un PNG, la mia foto originale, che è 4624 × 3468, è 22,42 MiB, ma quando la trasformo in grigio, diventa 8,88 MiB.

Cambia colori

Puoi anche scegliere di modificare il numero di colori utilizzati. In questo caso particolare, userò solo 16 colori su un PNG.

convert tree_4624x3468.png -colori 16 tree_4624x3468_16colors.png



Il PNG originale era 4624 × 3468 e 22,42 MiB. Tuttavia, quando ho cambiato i colori a soli 16, l'immagine è diventata di dimensioni 4,27 MiB. E la foto si presenta così:


tree_4624x3468_16colors.png

Utilizzo di più interruttori

Ora, non devi usare un singolo interruttore su una foto! Puoi combinare tutti gli interruttori che desideri su un'immagine.

Quindi, nell'esempio 1, scatterò una foto PNG di un albero. Questa foto originale ha una dimensione di 4624 × 3468 e 22,42 MiB e userò più interruttori e vedrò dove mi porta.

convert tree_4624x3468.png -striscia -ridimensionare 75 % x75 % -definire png:livello-di-compressione= 9 -spazio colore grigio  tree_4624x3468_reducedsize.png



Quindi questo PNG, con una dimensione originale di 22,42 MiB, si è trasformato in un'immagine di 5,3 MiB. L'immagine risultante è circa il 23% della dimensione originale.

Quindi, diamo un'occhiata a un JPG.

convertire tree_4624x3468.jpg -qualità 75 -ridimensionare 75 % x75 % -striscia -colori 16 tree_4624x3468_reducedsize.jpg



Quindi, qui, per il JPG, siamo passati da una dimensione originale di 5,7 MiB a circa 2,2 MiB per un'immagine a colori.

Ma se non fosse colorato:

convertire tree_4624x3468.jpg -qualità 75 -ridimensionare 75 % x75 % -striscia -spazio colore albero grigio_4624x3468_reducedsize.jpg



Qui, siamo passati da una dimensione originale di 5,7 MiB a 1,6 MiB per un'immagine grigia.

Se lo avessi voluto, avresti potuto impostare un limite massimo anche per le dimensioni. Il punto è che puoi ridurre le dimensioni se ci pensi davvero.

Conclusione

Quando scriviamo codice per uno scopo particolare, tendiamo a utilizzare anche le immagini e, a volte, non possiamo permetterci di avere immagini di dimensioni troppo grandi. In tali casi, l'obiettivo principale del programmatore è trovare un compromesso tra le dimensioni dell'immagine e la qualità dell'immagine. Non vogliamo utilizzare immagini di qualità troppo bassa, ma non possiamo nemmeno permetterci di avere immagini di grandi dimensioni. Quindi, abbiamo bisogno di modi per ridurre le dimensioni dell'immagine. ImageMagick offre una varietà di modi per ridurre le dimensioni della tua immagine sotto forma di vari interruttori: qualità, ridimensionamento, definizione, ecc. Puoi usarne uno o più per regolare le dimensioni dell'immagine.