You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by lb...@apache.org on 2014/04/03 23:57:52 UTC

svn commit: r1584420 - /xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSImageHandlerRenderedImage.java

Author: lbernardo
Date: Thu Apr  3 21:57:51 2014
New Revision: 1584420

URL: http://svn.apache.org/r1584420
Log:
FOP-2339: GIF to PS transparency is black; patch by Simon Steiner

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSImageHandlerRenderedImage.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSImageHandlerRenderedImage.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSImageHandlerRenderedImage.java?rev=1584420&r1=1584419&r2=1584420&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSImageHandlerRenderedImage.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/render/ps/PSImageHandlerRenderedImage.java Thu Apr  3 21:57:51 2014
@@ -19,9 +19,12 @@
 
 package org.apache.fop.render.ps;
 
+import java.awt.Color;
 import java.awt.Dimension;
+import java.awt.Graphics2D;
 import java.awt.Rectangle;
 import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
 import java.awt.image.RenderedImage;
 import java.io.IOException;
@@ -63,6 +66,17 @@ public class PSImageHandlerRenderedImage
         Rectangle2D targetRect = new Rectangle2D.Double(x, y, w, h);
 
         RenderedImage ri = imageRend.getRenderedImage();
+
+        if (ri instanceof BufferedImage && ri.getColorModel().hasAlpha()) {
+            BufferedImage convertedImg = new BufferedImage(ri.getWidth(), ri.getHeight(), BufferedImage.TYPE_INT_RGB);
+            Graphics2D g = (Graphics2D) convertedImg.getGraphics();
+            g.setBackground(Color.WHITE);
+            g.clearRect(0, 0, ri.getWidth(), ri.getHeight());
+            g.drawImage((BufferedImage)ri, 0, 0, null);
+            g.dispose();
+            ri = convertedImg;
+        }
+
         ImageEncoder encoder = ImageEncodingHelper.createRenderedImageEncoder(ri);
         Dimension imgDim = new Dimension(ri.getWidth(), ri.getHeight());
         String imgDescription = ri.getClass().getName();



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org