r9989 - helma/helma/trunk/src/helma/image/imageio
[email protected] Mon, 16 Nov 2009 14:47:46 +0100 (CET)
| Newsgroups | gmane.comp.java.helma.cvs |
|---|---|
| Message-ID | <20091116134746.71AFF3D0E2@mia> |
Author: lehni
Date: 2009-11-16 14:47:46 +0100 (Mon, 16 Nov 2009)
New Revision: 9989
Modified:
helma/helma/trunk/src/helma/image/imageio/ImageIOGenerator.java
Log:
Fix IllegalStateException when saving as GIF, see bug 683.
Details at http://dev.helma.org/trac/helma/changeset/9989
Modified: helma/helma/trunk/src/helma/image/imageio/ImageIOGenerator.java
===================================================================
--- helma/helma/trunk/src/helma/image/imageio/ImageIOGenerator.java 2009-11-10 08:51:27 UTC (rev 9988)
+++ helma/helma/trunk/src/helma/image/imageio/ImageIOGenerator.java 2009-11-16 13:47:46 UTC (rev 9989)
@@ -22,18 +22,24 @@
package helma.image.imageio;
-import java.awt.Image;
-import java.awt.image.*;
-import java.io.*;
-import java.net.URL;
+import helma.image.ImageGenerator;
+import helma.image.ImageWrapper;
+
+import java.awt.image.BufferedImage;
+import java.awt.image.DirectColorModel;
+import java.awt.image.WritableRaster;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
import java.util.Iterator;
-import javax.imageio.*;
+import javax.imageio.IIOImage;
+import javax.imageio.ImageIO;
+import javax.imageio.ImageWriteParam;
+import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
-import helma.image.*;
-
/**
* A wrapper for an image that uses the ImageIO Framework.
*/
@@ -46,6 +52,13 @@
if (param.canWriteCompressed() &&
quality >= 0.0 && quality <= 1.0) {
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
+ String[] types = param.getCompressionTypes();
+ // If compression types are defined, but none is set, set the first one,
+ // since setCompressionQuality, which requires MODE_EXPLICIT to be set,
+ // will complain otherwise.
+ if (types != null && param.getCompressionType() == null) {
+ param.setCompressionType(types[0]);
+ }
param.setCompressionQuality(quality);
}
if (param.canWriteProgressive())