Author: nbelaevski
Date: 2010-08-20 10:02:27 -0400 (Fri, 20 Aug 2010)
New Revision: 18845
Modified:
trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java
Log:
https://jira.jboss.org/browse/RF-9119
Modified: trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java
===================================================================
--- trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java 2010-08-20 12:06:11
UTC (rev 18844)
+++ trunk/core/api/src/main/java/org/richfaces/resource/ImageType.java 2010-08-20 14:02:27
UTC (rev 18845)
@@ -21,14 +21,20 @@
*/
package org.richfaces.resource;
+import java.awt.Transparency;
+import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
+import java.awt.image.ColorModel;
+import java.awt.image.ComponentColorModel;
+import java.awt.image.DataBuffer;
import java.awt.image.IndexColorModel;
+import java.awt.image.WritableRaster;
public enum ImageType {
GIF("gif") {
@Override
public BufferedImage createImage(int width, int height) {
- return createARGBImage(width, height);
+ return createBitmaskImage(width, height);
}
},
PNG("png") {
@@ -98,6 +104,15 @@
return new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
}
+ private static BufferedImage createBitmaskImage(int width, int height) {
+ ColorModel colorModel = new
ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), true, false,
+ Transparency.BITMASK, DataBuffer.TYPE_BYTE);
+
+ WritableRaster raster = colorModel.createCompatibleWritableRaster(width,
height);
+
+ return new BufferedImage(colorModel, raster, colorModel.isAlphaPremultiplied(),
null);
+ }
+
public abstract BufferedImage createImage(int width, int height);
public String getFormatName() {