2010-02-19 9 views
10

Estoy intentando codificar una gran cantidad de imágenes Buffered a JPEG utilizando la clase ImageWriter en javax.imageio. Desafortunadamente, la operación de codificación es bastante lenta (de 80 a 250 ms por imagen, sin incluir escritura en el disco). Esta etapa de codificación termina siendo la parte más lenta de mi aplicación, por lo que espero optimizarla.En busca de una alternativa más rápida a ImageIO

¿Alguien sabe de una alternativa al paquete ImageIO que puede ser más rápida?

Respuesta

4

ImageMagick puede funcionar. Existen varios envoltorios de Java para ImageMagick, que es una biblioteca de manipulación de imágenes de excelente calidad (y velocidad).

JMagick es uno de esos envoltorio, hay otros:

http://sourceforge.net/projects/jmagick/

A continuación, algunas personas la asesoría usando ProcessBuilder hacer directamente "nativo" pide al parecer, las perforaciones son mejores y hay menos riesgo de accidentes (las envolturas de ImageMagick pueden no ser tan buenas desde el punto de vista de rendimiento y uso de la memoria).

Si la velocidad y la calidad JPEG son un problema, entonces no se puede equivocar mucho con ImageMagick: depende de usted ver si prefiere usar un contenedor o llamar directamente a los ejecutables de ImageMagick desde su programa Java.

Ahora, por supuesto, esto solo funcionaría si escribir un archivo sin pérdidas desde su aplicación (digamos archivos PNG) es lo suficientemente rápido.

3

Puede consultar JAI. This guy parecía tener éxito con TIFF.

2

http://www.chrfr.de/software/PNG.java es una opción para generar imágenes PNG.

+0

Holy Smokes que es rápido. Obtuve la compresión de algunos pobres sustituyendo el uso de DeflaterOutputStream en lugar de la clase ZLib en la parte inferior del archivo. – qualidafial

+0

Para mí no se comprime en absoluto ... El resultado es 4MB de 1280 * 800 imágenes .... –

Cuestiones relacionadas