Pregunta

Estoy tratando de reducir la programación (con pérdida) el tamaño de los archivos PNG y GIF. Como parte de esto necesito para reducir el número de colores en las imágenes. No quiero reducir todas las imágenes en un solo valor colores, así que lo que estoy haciendo es; obtener el número de colores únicos en la imagen y, a continuación; dividir este número por 2 para reducir el número de colores a la mitad.

El problema es que esto no funciona. Usando ImageMagic es demasiado lento y no reducir el tamaño del archivo a menos que la imagen tiene bajo unas centenas colores únicos. Usando GraphicsMagick siempre resulta en un valor único bajo los colores 255 independientemente del número de colores eran en la imagen original. Otro problema con GraphicsMagick es si hay píxeles transparentes en la imagen que reemplaza los colores perdidos con transparente.

Cualquier ayuda sería bienvenida con gratitud, Gracias.

¿Fue útil?

Solución 3

El primer problema, GraphicsMagick puede ser compilado utilizando 8 bits, 16 bits o los niveles de bit cuántico 32. Mi versión se compila en 8 bits (el valor predeterminado), significa esto que el número máximo de colores que se puede asignar a una imagen es de 256 colores únicos (3 * 3 * 2, 1 de los bits de azul se elimina porque la lata ojo humano 't ver correctamente). Obviamente, GraphicsMagick puede manejar imágenes con más colores que esto, pero cuando la reducción de colores que sólo puede reducir a 256 o menos colores. Quantums más grandes de píxeles causan GraphicsMagick funcione más lentamente y requieren más memoria. Por ejemplo, utilizando cuantos de los píxeles de dieciséis bits provoca GraphicsMagick para funcionar 15% a 50% más lento (y tomar el doble de memoria) que cuando está construido para soportar cuantos de los píxeles de ocho bits.

El segundo problema; el manejo de imágenes PNG transparencia, yo estaba usando una versión anterior de GraphicsMagick (1.1 creo), de todos modos, cuando actualicé a 1.3 este problema ya no está presente, que me dice que era un error en GraphicsMagick 1.1 que causó esto.

Otros consejos

La reducción del número de colores sólo es útil si

  1. la imagen a continuación, puede utilizar una paleta en lugar de almacenar el color de cada píxel
  2. el tamaño de un índice de la paleta es más pequeño que el tamaño de un color
  3. el formato de imagen es compatible con el tamaño de la paleta

creo que sólo se puede obtener de 1 bit, 4 bits, 8 bits, por lo que de 2 colores, 16 colores, o de 256 colores en esos formatos. Creo que si usted pide más, sólo se truncan a 256. Si preguntas por menos, simplemente no utilizar toda la gama de colores.

¿Ha considerado la conversión a JPEG y jugar con la configuración de calidad? Se termina con más control fino grano de pérdida-dad. El inconveniente es que si las imágenes no son fotos, pero suena como que tienen una gran cantidad de colores, por lo que podrían ser.

Tal vez elegir 1, 4, 8 bits si está cerca de lo que quiere y JPEG si tiene una gran cantidad de colores.

Creo que la instalación de ImageMagick que está después podría ser de cuantificación:

http://www.imagemagick.org/Usage/quantize/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top