ImageMagick: reducción del tamaño de los archivos

Imagemagick Reduccion Del Tamano De Los Archivos



Una imagen hermosa y grande es casi genial; suele ir acompañado de una calidad tremenda. Sin embargo, hay muchas, muchas ocasiones en las que no puede permitirse el lujo de tener imágenes de tamaño demasiado grande. A veces, todo lo que desea es una imagen de tamaño decente o incluso una que sea menor que un tamaño dado en particular. En tales casos, todo lo que el programador desea es una forma de encontrar un término medio entre calidad y tamaño. Teóricamente, si renuncia por completo a la calidad, el tamaño del archivo no debería ser un problema, pero el verdadero problema es encontrar un compromiso entre la calidad y el tamaño del archivo. En este tutorial, discutiremos formas de reducir el tamaño de archivo de las imágenes usando ImageMagick (sin comprometer demasiado la calidad).

Instalación de ImageMagick

Necesitaremos ImageMagick para esto, así que primero, vamos a instalarlo:







sudo apt-get install imagenmagia

 



El interruptor de calidad

La primera y más sencilla forma de reducir el tamaño de una foto/imagen/video es reducir la calidad de la foto. El interruptor de calidad representa el nivel de compresión JPEG/MIFF/PNG. Para JPEG y MPEG, una calidad de 1 representa el nivel más alto de compresión y la calidad de imagen más baja, mientras que 100 representa el nivel más bajo de compresión y la mejor calidad.



Así que veamos un ejemplo; la foto que tomé de un árbol es de 4624×3468 en términos de resolución y es de 5.70226MiB. Esta es la imagen original, un JPEG, para ser específicos.






Ahora, el punto es que queremos reducir el tamaño de la imagen. Así que intentemos establecer la configuración del interruptor de calidad en algo un poco diferente y veamos qué sucede.

convertir árbol_4624x3468.jpg -calidad 75 árbol_4624x3468_calidad75.jpg
convertir árbol_4624x3468.jpg -calidad 25 árbol_4624x3468_calidad25.jpg

 

Reduje la calidad a 75 para una imagen y 25 para otra. La imagen original era 5.70226MiB, pero la imagen que tenía una calidad de 75 se convirtió en 2.74664MiB mientras que la de calidad 25 se convirtió en 1358250 (1.295MiB). Aquí, personalmente iría con la calidad del 75%.



Ahora, dado que también nos preocupamos por la calidad real de la foto, déjame mostrarte las fotos:


árbol_4624x3468_calidad75.jpg


árbol_4624x3468_calidad25.jpg

Como puede ver, la calidad no se ha visto demasiado afectada, pero el tamaño del archivo es más pequeño.

Ahora, intenté hacer lo mismo con PNG, y esto es lo que obtuve:


Entonces, pasó de 23501600B (22.413MiB) a 22.2854MiB. Para un JPEG, pasó de 5,70226 MiB a 1,295 MiB. Para formatos sin pérdida como PNG, el cambio de calidad es mucho más difícil.

Cambiar el tamaño de las imágenes

Cambiar el tamaño de las imágenes es otra forma. Por ejemplo:

convertir árbol_4624x3468.jpg -cambiar el tamaño 50 % x50 % árbol_4624x3468_resize50 % .jpg

 

Como puede ver claramente, la imagen que tenía 4624 × 3468 tenía 5,70226 MiB, mientras que la que tenía 2312 × 1734 tiene solo 1,56287 MiB.

El interruptor de definición

El interruptor de definición va seguido de una tecla y su valor dado.

-definir clave{=valor}…

La lista de posibles valores clave se puede encontrar en .

Para PNG, puede usar png: nivel de compresión = valor. El valor puede ser cualquier valor de 0 a 9. Un valor de 0 le proporcionará la menor compresión, pero es rápido, y un valor de 9 le proporcionará la mejor compresión, pero es el más lento. Cualquier cosa en el medio también vale.

Por ejemplo:

convertir árbol_4624x3468.png -definir png:nivel-de-compresión= 9 árbol_4624x3468_compresión9.png

 

En la mayoría de los casos, lo que quiere un programador es establecer un tamaño máximo para una foto. Por lo tanto, suponga que desea establecer un tamaño máximo para una foto. Puede usar el interruptor de definición para hacer esto.

-define jpeg: extensión = {tamaño}

convertir  tree_4624x3468.jpg -definir jpeg: medida =1MB árbol_4624x3468_extensión1MB.jpg

 

Como puede ver en la imagen de arriba, lo configuró en una resolución de 4624 × 3468 y un tamaño de 0.897MiB. Entonces, como usted solicitó, ImageMagick ha creado una foto que tiene menos del tamaño máximo de 1 MB.

Interruptor de tira

Las fotografías que tomamos con las cámaras vienen con metadatos. Eliminar los metadatos también puede liberar algo de espacio. En ImageMagick, hacemos esto usando el interruptor de tira.

convertir árbol_4624x3468.jpg -banda árbol_strip.jpg

 

Aquí, como puede ver, la foto original es de 4624 × 3468 y 5,7 MiB. Pero la imagen a la que se le han quitado los metadatos tiene 4,65 MiB.

Cambio de espacio de color

También puedes intentar cambiar el espacio de color. En esta primera instancia, lo convertiré en gris.

convertir árbol_4624x3468.jpg -espacio de color gris_arbol_gris.jpg -calidad 75

 

Como puede ver, la reducción del tamaño de la imagen no es demasiado grande, pero hay una reducción: de 5,70226 MiB a 4,44997 MiB.

Alternativamente, también probé lo siguiente:

convertir árbol_4624x3468.png -espacio de color gris árbol_graypng.png

 

En el caso de un PNG, mi foto original, que es 4624 × 3468, tiene 22,42 MiB, pero cuando la pongo gris, se convierte en 8,88 MiB.

Cambio de colores

También puede optar por cambiar la cantidad de colores utilizados. En este caso particular, usaré solo 16 colores en un PNG.

convertir árbol_4624x3468.png -colores 16 árbol_4624x3468_16colores.png

 

El PNG original era de 4624 × 3468 y 22,42 MiB. Sin embargo, cuando cambié los colores a solo 16, la imagen se convirtió en un tamaño de 4,27 MiB. Y la foto se ve así:


árbol_4624x3468_16colores.png

Uso de varios interruptores

¡Ahora, no tienes que usar un solo interruptor en una foto! Puede combinar tantos interruptores como desee en una imagen.

Entonces, en el ejemplo 1, voy a tomar una foto PNG de un árbol. Esta foto original tiene un tamaño de 4624 × 3468 y 22,42 MiB, y voy a usar varios interruptores para ver a dónde me lleva.

convertir árbol_4624x3468.png -banda -cambiar el tamaño 75 % x75 % -definir png:nivel-de-compresión= 9 -espacio de color gris  árbol_4624x3468_tamaño reducido.png

 

Entonces este PNG, con un tamaño original de 22.42MiB, se convirtió en una imagen de 5.3MiB. La imagen resultante tiene aproximadamente el 23% del tamaño original.

A continuación, veamos un JPG.

convertir árbol_4624x3468.jpg -calidad 75 -cambiar el tamaño 75 % x75 % -banda   -colores 16 árbol_4624x3468_tamaño reducido.jpg

 

Entonces, aquí, para el JPG, pasamos de un tamaño original de 5,7 MiB a unos 2,2 MiB para una imagen en color.

Pero si no fuera de color:

convertir árbol_4624x3468.jpg -calidad 75 -cambiar el tamaño 75 % x75 % -banda   -espacio de color árbol gris_4624x3468_tamaño reducido.jpg

 

Aquí, pasamos de un tamaño original de 5,7 MiB a 1,6 MiB para una imagen gris.

Si hubiera querido, también podría haber establecido un límite máximo en el tamaño. El punto es que puedes reducir el tamaño si realmente te lo propones.

Conclusión

Cuando escribimos código para un propósito particular, también tendemos a usar imágenes y, a veces, simplemente no podemos permitirnos tener imágenes de tamaño demasiado grande. En tales casos, el enfoque principal del programador es encontrar un compromiso entre el tamaño de la imagen y la calidad de la imagen. No queremos utilizar imágenes de muy baja calidad, pero tampoco podemos permitirnos tener imágenes de gran tamaño. Por lo tanto, necesitamos formas de reducir el tamaño de la imagen. ImageMagick ofrece una variedad de formas de reducir el tamaño de su imagen en forma de varios interruptores: calidad, cambio de tamaño, definición, etc. Puede usar uno o más de ellos para ajustar el tamaño de la imagen.