una tamaño reducir programa pixeles perder para online los jpg imagen fotos como cambiar calidad achicar image image-processing compression image-manipulation imagemagick

image - tamaño - programa para achicar fotos



Reducir el tamaño de archivo de una imagen muy grande, sin cambiar las dimensiones de la imagen (12)

Considere una aplicación que maneja la carga de archivos PNG potencialmente muy grandes.

Todos los archivos cargados deben almacenarse en el disco para su posterior recuperación. Sin embargo, los archivos PNG pueden tener un tamaño de hasta 30 MB, pero las limitaciones de almacenamiento en disco brindan un máximo por tamaño de archivo de 1 MB.

El problema es tomar una entrada PNG de tamaño de archivo de hasta 30 MB y producir una salida PNG de tamaño de archivo inferior a 1 MB.

Esta operación obviamente tendrá pérdidas, y la reducción en la calidad de imagen, colores, etc. no es un problema. Sin embargo, una cosa que no se debe cambiar es la dimensión de la imagen. Por lo tanto, un archivo de entrada de dimensión 800x600 debe producir un archivo de salida de dimensión 800x600.

Los requisitos anteriores descritos anteriormente son estrictos y no pueden modificarse.

Usando ImageMagick (o alguna otra herramienta de código abierto), ¿cómo reduciría el tamaño del archivo de entrada de archivos PNG de tamaño ~ 30 MB a un máximo de 1 MB por archivo, sin cambiar las dimensiones de la imagen?


Como el tamaño de un archivo de imagen está directamente relacionado con las dimensiones de la imagen y el número de colores, parece que solo tiene una opción: reducir el número de colores.

Y ~ 30MB a 1MB es una reducción muy grande.

Sería difícil lograr esta relación con una conversión a monocromo.


Depende del tipo de imagen, si es una imagen de la vida real o una imagen generada por computadora, para las imágenes de la vida real png hará muy poco, incluso podría no comprimir en absoluto, use jpg para esas imágenes, si la imagen tiene un número limitado de diferentes colores (puede tener una profundidad de imagen de 24 bits, pero el número de imágenes únicas será bajo) png puede comprimir bastante bien. png es básicamente una implementación de zip para imágenes, así que si una gran cantidad de píxeles son iguales, puede tener una relación de compresión bastante buena, si necesita compresión sin pérdida, no cambie el tamaño.


Depende mucho de lo que quieras al final, a menudo me gusta reducir el número de colores mientras persigo el tamaño. En muchos casos, los colores reducidos no importan. Aquí hay un ejemplo de reducción de colores a 254.

convert -colors 254 in.png out.png


Haga clic derecho sobre la imagen. Seleccione abrir con pintura. Haga clic en cambiar el tamaño. Haga clic en el píxel y cambie la horizontal a 250 o 200.

Esa es la única cosa. Es la forma más rápida para quienes usan Windows XP o Windows 7.


PNG no es un formato de imagen con pérdida, por lo que es probable que necesite convertir la imagen a otro formato, muy probablemente JPEG. JPEG tiene un factor de "calidad" configurable: simplemente podría seguir reduciendo el factor de calidad hasta que obtenga una imagen lo suficientemente pequeña. Todo esto se puede hacer sin cambiar la resolución de la imagen.

Obviamente, dependiendo de la imagen, la pérdida de calidad visual puede ser sustancial. JPEG funciona mejor para imágenes de "vida real", como imágenes de cámaras. No funciona tan bien para logotipos, capturas de pantalla u otras imágenes con transiciones "nítidas" de claras a oscuras. (PNG, por otro lado, tiene el comportamiento opuesto: es mejor para logotipos, etc.)

Sin embargo, a 800x600, es probable que sea muy fácil bajar un JPEG por debajo de 1MB. (Me sorprendería mucho ver un archivo de 30MB en esas dimensiones más pequeñas). De hecho, incluso sin comprimir , la imagen solo sería de alrededor de 1,4 MB:

800 pixels * 600 pixels * 3 Bytes / color = 1,440,000 Bytes = 1.4MB

Por lo tanto, solo necesita una relación de compresión de 1.4: 1 para bajar la imagen a 1MB. Dependiendo del tipo de imagen, la compresión PNG puede proporcionar ese nivel de compresión. De lo contrario, JPEG casi con certeza podría: las relaciones de compresión JPEG del orden de 10: 1 no son infrecuentes. De nuevo, la calidad / tamaño de la salida dependerá del tipo de imagen.

Finalmente, aunque hace un tiempo que no uso ImageMagick, estoy casi seguro de que hay opciones para volver a comprimir una imagen usando un factor de calidad específico. ¡Lee los documentos y comienza a experimentar!

EDITAR: parece que debería ser bastante fácil con ImageMagick. De los docs :

$magick> convert input.png -quality 75 output.jpg

Solo sigue jugando con el valor de calidad hasta que obtengas una salida adecuada.



Puedes probar la utilidad pngquant . Es muy simple de instalar y usar. Y puede comprimir sus PNG mucho sin pérdida de calidad visible.

Una vez que lo instales, prueba algo como esto:

pngquant yourfile.png pngquant --quality=0-70 yourfile.png

Para mi imagen de demostración (generada por imagemagick), el primer comando reduce 350KB a 110KB, y el segundo reduce a 65KB.


Sé que quieres preservar el tamaño del píxel, pero ¿puedes reducir el tamaño del píxel y ajustar el DPI almacenado con la imagen para que se conserve el tamaño de la pantalla? Depende de qué cliente usará para ver las imágenes, pero la mayoría debería observarlo. Si está utilizando las imágenes en la web, puede establecer el tamaño de píxel de la etiqueta <img> .


Si desea modificar el tamaño de la imagen en ubuntu, puede probar "gimp". He probado algunas aplicaciones de edición de imágenes en Ubuntu y esta parecía ser la mejor entre ellas.

¿CÓMO INSTALAR?

- Terminal abierto

-type: sudo apt-get install gimp-plugin-registry

-Ponga una contraseña de administrador. necesitas una conexión de red para esto.

-Una vez instalado, abra la imagen con el editor de imágenes GIMP. A continuación, vaya a: Archivo> Exportar como> Haga clic en el botón ''Exportar''

- Obtendrá una pequeña ventana, donde la casilla de verificación en "Mostrar vista previa en la ventana de la imagen". Una vez que marque esta opción, podrá ver el tamaño actual del archivo junto con el nivel de calidad.

-Ajuste el nivel de calidad para aumentar / disminuir el tamaño del archivo.

-Una vez hecho el ajuste, haga clic en el botón ''Exportar'' para guardar el archivo.


Su ejemplo es problemático porque una imagen de 30 MB con una resolución de 800x600 almacena 500 bits por píxel . Claramente muy poco realista. Por favor danos números reales.

Mientras tanto, el enfoque "barato y alegre" que trataría sería el siguiente: escala la imagen por un factor de 6, luego escala una copia de seguridad por un factor de 6, luego ejecuta la compresión PNG. Si tiene suerte, reducirá el tamaño de la imagen en un factor de 36. Si tiene mala suerte, los ahorros serán más como 6.

pngtopng big.png | pnmscale -reduce 6 | pnmscale 6 | pnmtopng > big.png

Si eso no es suficiente, puede lanzar un ppmquant en el medio (en la imagen pequeña) para reducir la cantidad de colores. (Los ejemplos son netpbm / pbmplus , que siempre he encontrado más fáciles de entender que ImageMagick).

Para saber si tal solución es razonable, debemos conocer los verdaderos números de su problema.

Además, si realmente va a descartar la información de forma permanente, es casi seguro que es mejor utilizar la compresión JPEG, que está diseñada para perder información con bastante elegancia. ¿Hay alguna razón por la cual JPEG no es apropiado para su aplicación?



  • Paso 1: reduzca la imagen a 1/16 de su tamaño original.
  • Paso 2: Disminuya la cantidad de colores.
  • Paso 3: aumente el tamaño de la imagen a su tamaño original.