ImageMagick - Reducir los tamaños de archivo

ImageMagick - Reducir los tamaños de archivo

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

Instalar ImageMagick

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

sudo apt-get install imageMagick

El interruptor de calidad

La primera y más fácil 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 menor nivel de compresión y la mejor calidad.

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


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 ver qué pasa.

convertir árbol_4624x3468.JPG -Quality 75 Tree_4624x3468_Quality75.JPG
convertir árbol_4624x3468.JPG -Quality 25 Tree_4624x3468_Quality25.JPG



Reduje la calidad a 75 para una imagen y 25 para otra. La imagen original era 5.70226MIB, pero la imagen que era 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 importa la calidad real de la foto, déjame mostrarte las fotos:


Tree_4624x3468_Quality75.JPG


Tree_4624x3468_Quality25.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.70226MiB a 1.295MiB. Para formatos no bajos como PNG, el interruptor de calidad es mucho más difícil.

RESISTENIMIENTO FOTOS

Cambiar el tamaño de las fotos es de otra manera. Por ejemplo:

convertir árbol_4624x3468.JPG -RESIZE 50% X50% TREE_4624X3468_RESIZE50%.JPG



Como puede ver claramente, la imagen que era 4624 × 3468 era de 5.70226MIB, mientras que el que fue 2312 × 1734 es solo 1.56287MIB.

El interruptor Definir

El interruptor Define es seguido por una clave y su valor dado.

-Definir clave = valor ..

La lista de posibles valores clave se puede encontrar en https: // imageMagick.org/script/define.php.

Para PNG, puede usar PNG: compresión a nivel = valor. El valor puede ser 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 la más lenta. Cualquier cosa intermedia también es.

Por ejemplo:

convertir árbol_4624x3468.png -define png: compresión nivel = 9 tree_4624x3468_compression9.png



En la mayoría de los casos, lo que un programador quiere es establecer un tamaño máximo para una foto. Entonces, supongamos para una instancia que desea establecer un tamaño máximo para una foto. Puedes usar el interruptor Define para hacer esto.

-Definir JPEG: Extent = size

convertir árbol_4624x3468.jpg -define jpeg: extens = 1mb tree_4624x3468_extent1mb.JPG



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

Interruptor

Fotos que tomamos con cámaras vienen con metadatos. Eliminar los metadatos también puede aclarar algo de espacio. En ImageMagick, hacemos esto usando el interruptor de tiras.

convertir árbol_4624x3468.jpg -strip tree_strip.JPG



Aquí, como puede ver, la foto original es 4624 × 3468 y 5.7MiB. Pero la imagen que ha tenido sus metadatos despojados es 4.65MiB.

Interruptor de espacio

También puedes intentar cambiar el espacio de colores. En esta primera instancia, lo volveré gris.

convertir árbol_4624x3468.jpg -colorspace gris tree_gray.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.70226MIB a 4.44997MIB.

Alternativamente, también probé lo siguiente:

convertir árbol_4624x3468.png -colorspace gris tree_graypng.png



En el caso de un PNG, mi foto original, eso es 4624 × 3468, es 22.42MiB, pero cuando lo giro gris, se convierte en 8.88MiB.

Interruptor de colores

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

convertir árbol_4624x3468.png -colors 16 tree_4624x3468_16colors.png



El PNG original fue 4624 × 3468 y 22.42MiB. Sin embargo, cuando cambié los colores a solo 16, la imagen se convirtió en 4.27MIB en tamaño. Y la foto se ve así:


Tree_4624x3468_16colors.png

Usando múltiples interruptores

Ahora no tienes que usar un solo interruptor en una foto! Puedes combinar tantos interruptores como quieras en una imagen.

Entonces, en el Ejemplo 1, voy a tomar una foto de PNG de un árbol. Esta foto original es 4624 × 3468 y 22.42MIB en tamaño, y voy a usar múltiples interruptores y ver a dónde me lleva.

convertir árbol_4624x3468.PNG -Trip -RESIZED 75% X75% -FIN PNG: compresión a nivel = 9 -Colorspace gris árbol_4624x3468_reducedSize.png



Entonces este PNG, con un tamaño original de 22.42MiB, convertido en una imagen de 5.3MIB. La imagen resultante es aproximadamente el 23% del tamaño original.

Entonces, a continuación, vamos a ver un JPG.

convertir árbol_4624x3468.JPG -Qualidad 75 -RESIZA 75% X75% -TRIP -COLORS 16 TREE_4624X3468_REDUCEDSIZE.JPG



Entonces, aquí, para el JPG, pasamos de un tamaño original de 5.7MIB a aproximadamente 2.2MIB para una imagen de color.

Pero si no estaba coloreado:

convertir árbol_4624x3468.JPG -Qualidad 75 -RESIZA 75% X75% -TRIP -COLORSPACE GRIS TREE_4624X3468_REDUCEDSIZE.JPG



Aquí, fuimos de un tamaño original de 5.7MiB a 1.6mib para una imagen gris.

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

Conclusión

Al escribir código para un propósito particular, tendemos a usar imágenes también, y a veces, simplemente no podemos permitirnos tener imágenes que sean demasiado grandes en tamaño. 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 usar imágenes que tengan una calidad demasiado baja, 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, cambiar el tamaño, definir, etc. Puede usar uno o más de ellos para ajustar el tamaño de la imagen.