2011-06-13 11 views
7

Estoy tratando de comprimir una imagen en la línea de comandos usando Imagemagick en Perl (en la actualidad, sólo soy capaz de darle la vuelta ...)ImageMagick/Mogrify - imagen compresa programáticamente

system("/usr/bin/mogrify", "-flip","/var/www/images/$pid-$count.jpg"); 

La imagen debe comprimirse en tamaño en un 50%, pero conservan las mismas dimensiones! Puedo cambiar el tamaño de una imagen bien, pero ¿cómo pixelate la imagen para reducir la resolución, pero mantener las mismas dimensiones?

Espero que alguien por ahí pueda ayudar.

Muchas gracias de antemano

Respuesta

12

ImageMagick permite al switch -compress, lo que podría hacer lo que quiera.

-compress: El uso de compresión de píxeles especificado por el tipo al escribir la imagen

Las opciones son: Ninguno, BZIP, Fax, Grupo 4, JPEG, JPEG 2000, Lossless, LZW, RLE o Zip.

Para imprimir una lista completa de tipos de compresión, use -list compress.

Especifique +compress para almacenar la imagen binaria en un formato sin comprimir. El valor predeterminado es el tipo de compresión del archivo de imagen especificado.

Si se especifica la compresión LZW pero la compresión LZW no se ha habilitado, los datos de la imagen se escriben en un formato LZW descomprimido que los decodificadores LZW pueden leer. Esto puede generar archivos GIF más grandes de lo esperado.

Lossless se refiere a JPEG sin pérdida, que solo está disponible si la biblioteca JPEG ha sido parcheada para soportarlo. El uso de JPEG sin pérdida generalmente no se recomienda.

Utilice la opción -quality para establecer el nivel de compresión que utilizarán los codificadores JPEG, PNG, MIFF y MPEG. Utilice la opción -sampling-factor para establecer el factor de muestreo que utilizarán los codificadores JPEG, MPEG y YUV para reducir el muestreo de los canales de crominancia.


cheque este ejemplo/experimento:

>>> du data/lena.png 
464K data/lena.png 
>>> cp data/lena.png . 
>>> convert lena.png lena.jpg 
>>> du lena.jpg 
76K lena.jpg   # already a lot smaller by going png --> jpeg 
>>> mogrify -compress JPEG -quality 5 lena.jpg 
>>> du lena.jpg 
8.0K lena.jpg  # well, it did compress a lot and it's still viewable 
+0

Hey, gracias por su respuesta. Estoy interesado en la compresión con pérdida, pero creo que las dimensiones de la imagen se cambian de tamaño ... – Eamorr

+0

definitivamente puede trabajar con eso, agregaré un ejemplo que acabo de probar – c00kiemon5ter

Cuestiones relacionadas