2010-02-19 11 views
10

Ich versuche, eine große Menge von BufferedImages zu JPEG mit der ImageWriter-Klasse in javax.imageio zu kodieren. Leider ist die Kodierung ziemlich langsam (ca. 80 bis 250 ms pro Bild, ohne das Schreiben auf die Festplatte). Diese Kodierungsstufe ist der langsamste Teil meiner App, also hoffe ich, sie zu optimieren.Auf der Suche nach einer schnelleren Alternative zu ImageIO

Kennt jemand eine Alternative zum ImageIO-Paket, die möglicherweise schneller ist?

Antwort

4

ImageMagick funktioniert möglicherweise. Es gibt verschiedene Java-Wrapper für ImageMagick, eine Bildbearbeitungsbibliothek von hervorragender Qualität (und Geschwindigkeit).

JMagick ist eine solche Wrapper, gibt es andere, die:

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

Dann einige Ratschläge Menschen Process mit direkt für scheinbar die perfs „native“ nennt es besser zu machen und es gibt weniger Risiko von Abstürzen (Die ImageMagick-Wrapper sind möglicherweise aus Sicht der Leistung und der Speichernutzung nicht so toll.

Wenn Geschwindigkeit und JPEG-Qualität ein Problem sind, dann können Sie mit ImageMagick nicht viel falsch machen: Es liegt an Ihnen, ob Sie einen Wrapper verwenden oder die ausführbaren Dateien von ImageMagick direkt von Ihrem Java-Programm aufrufen.

Jetzt würde das natürlich nur funktionieren, wenn das Schreiben einer verlustfreien Datei von Ihrer App (sagen wir PNG-Dateien) schnell genug ist.

3

Sie könnten in JAI suchen. This guy schien Erfolg mit TIFFs zu haben.

2

http://www.chrfr.de/software/PNG.java ist eine Option zum Generieren von PNG-Bildern.

+0

Heilige raucht, das ist schnell. Ich habe die Komprimierung für einen armen Mann erhalten, indem ich anstelle der ZLib-Klasse am Ende der Datei die Verwendung von DeflaterOutputStream eingesetzt habe. – qualidafial

+0

Für mich ist es überhaupt nicht komprimieren ... Das Ergebnis ist 4 MB von 1280 * 800 Bildern .... –

Verwandte Themen