una tamaño reducir que pese para optimizar menos imagenes imagen comprimir como image-processing imagemagick

image processing - tamaño - Recomendación para comprimir archivos JPG con ImageMagick



optimizar imagenes linux (9)

@JavisPerez - ¿Hay alguna forma de comprimir esa imagen a 150kb como mínimo? ¿Es eso posible? ¿Qué opciones de ImageMagick puedo usar?

Vea los siguientes enlaces donde hay una opción en ImageMagick para especificar el tamaño del archivo de salida deseado para escribir en archivos JPG.

http://www.imagemagick.org/Usage/formats/#jpg_write http://www.imagemagick.org/script/command-line-options.php#define

-define jpeg:extent={size} As of IM v6.5.8-2 you can specify a maximum output filesize for the JPEG image. The size is specified with a suffix. For example "400kb".

convert image.jpg -define jpeg:extent=150kb result.jpg

Perderá algo de calidad descomprimiendo y recomprimiendo además de cualquier pérdida debido a la disminución del valor de calidad de la entrada.

Quiero comprimir un archivo de imagen JPG con ImageMagick pero no puedo obtener mucha diferencia de tamaño. Por defecto, el tamaño de salida es más grande que la entrada. No sé por qué, pero después de agregar algunas + opciones de perfil y establecer la calidad, puedo obtener un tamaño más pequeño pero similar al original.

La imagen de entrada es de 255kb, la imagen procesada es de 264kb (usando el perfil + para eliminar perfiles y establecer la calidad al 70%). ¿Hay alguna manera de comprimir esa imagen a 150 kb como mínimo? ¿Es eso posible? ¿Qué opciones de ImageMagick puedo usar?


Agregaría una nota lateral útil y una sugerencia general para minimizar JPG y PNG.

En primer lugar, ImageMagick lee (o mejor "adivina" ...) el nivel de compresión de jpeg de entrada y, por lo tanto, si no agrega -quality NN en absoluto, la salida debe usar el mismo nivel que la entrada. A veces podría ser una característica importante. De lo contrario, el nivel predeterminado es -quality 92 (ver www.imagemagick.org )

La sugerencia es acerca de una herramienta gratuita realmente impresionante, ImageOptim , también para procesos por lotes.
Puedes obtener jpgs más pequeños (y pngs también, especialmente después del uso del ImageAlpha [no por lotes] libre o del Pngyu gratuito si necesitas un proceso por lotes).
No solo, estas herramientas son para Mac y Win y como Command Line (sugiero instalar usando Brew y luego buscar en las fórmulas de Brew).


Aquí hay una solución completa para quienes usan Imagick en PHP:

$im = new /Imagick($filePath); $im->setImageCompression(/Imagick::COMPRESSION_JPEG); $im->setImageCompressionQuality(85); $im->stripImage(); $im->setInterlaceScheme(/Imagick::INTERLACE_PLANE); // Try between 0 or 5 radius. If you find radius of 5 // produces too blurry pictures decrease to 0 until you // find a good balance between size and quality. $im->gaussianBlurImage(0.05, 5); // Include this part if you also want to specify a maximum size for the images $size = $im->getImageGeometry(); $maxWidth = 1920; $maxHeight = 1080; // ---------- // | | // ---------- if($size[''width''] >= $size[''height'']){ if($size[''width''] > $maxWidth){ $im->resizeImage($maxWidth, 0, /Imagick::FILTER_LANCZOS, 1); } } // ------ // | | // | | // | | // | | // ------ else{ if($size[''height''] > $maxHeight){ $im->resizeImage(0, $maxHeight, /Imagick::FILTER_LANCZOS, 1); } }


Estoy usando las pautas de optimización de imagen de Google Pagespeed Insights , y para ImageMagick recomiendan lo siguiente:

-sampling-factor 4: 2: 0
-tira
-calidad 85 [puede variar, utilizo rango 60-80]
-entrelazar
-colorspace RGB

Comando en ImageMagick:

convert image.jpg -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace RGB image_converted.jpg

Con estas opciones obtengo hasta 40% de ahorro en tamaño JPEG sin pérdida visible.


Experimentar yo mismo aquí y allá hace que ese desenfoque gausiano sea muy diferente. El comando final que utilicé fue:

mogrify * -sampling-factor 4: 2: 0 -strip -quality 88 -interlace Plane -define jpeg: dct-method = float -colorspace RGB -gaussian-blur 0.05

Sin el desenfoque de Gausian en 0.05, era alrededor de 261kb, con eso fue alrededor de 171KB para la imagen que estaba probando. La diferencia visual en un monitor 1440p con una imagen compleja de gran tamaño no se nota hasta que se amplía demasiado.


Solo digo para aquellos que usan la clase Imagick en PHP:

$im -> gaussianBlurImage(0.8, 10); //blur $im -> setImageCompressionQuality(85); //set compress quality to 85


Una vez que necesité cambiar el tamaño de las fotos de la cámara para desarrollar:

  • Tamaño original del archivo: 2800 kB
  • Resolución: 3264x2448

Mando:

mogrify -quality "97%" -resize 2048x2048 -filter Lanczos -interlace Plane -gaussian-blur 0.05

  • Tamaño del archivo resultante 753 kB
  • Resolución 2048x2048

y no puedo ver ningún cambio en pantalla completa con mi monitor de resolución 1920x1080. La resolución 2048 es la mejor para desarrollar fotografías de 10 cm con una calidad máxima de 360 ​​ppp. No quiero despojarlo.

editar: noté que incluso obtengo mejores resultados sin difuminar. Sin difuminar, el tamaño del archivo es el 50% del original, pero la calidad es mejor (al hacer zoom).


Yo uso siempre:

  • calidad en 85
  • progresivo (compresión comprobada)
  • una muy pequeña desenfoque gausssian para optimizar el tamaño (0,05 o 0,5 de radio) depende de la calidad y el tamaño de la imagen, esto optimiza notablemente el tamaño del jpeg.
  • Elimine cualquier comentario o etiqueta exif

en imagemagick debería ser

convert -strip -interlace Plane -gaussian-blur 0.05 -quality 85% source.jpg result.jpg

espero que esto sea útil.

Enlace fuente: http://www.yuiblog.com/blog/2008/12/05/imageopt-4/

De @Fordi en los comentarios (no olvides pasar el pulgar a su comentario si lo desea): Si no le gusta el desenfoque, use -sampling-factor 4:2:0 lugar. Lo que hace es reducir a la mitad la resolución del canal de croma, sin interferir con la resolución de luminancia a la que se fijan los ojos. Si desea una mayor fidelidad en la conversión, puede obtener una ligera mejora sin un aumento en el tamaño del archivo especificando -define jpeg:dct-method=float - es decir, utilice la transformada de coseno discreto de coma flotante más precisa, en lugar de la velocidad predeterminada predeterminada versión entera.


-adaptive-resize 60% al comando sugerido, pero con -quality 60% .

convert -strip -interlace Plane -gaussian-blur 0.05 -quality 60% -adaptive-resize 60% img_original.jpg img_resize.jpg

Estos fueron mis resultados

  • img_original.jpg = 13,913KB
  • img_resized.jpg = 845KB

No estoy seguro de si esa conversión destruye demasiado mi imagen, pero honestamente no pensé que mi conversión parecía una mierda. Era un panorama de gran angular y no me importaba la obstrucción meticulosa.