From 69c59cfdf9f3fdb6e09c1b5de8fbb8700dc0d3e4 Mon Sep 17 00:00:00 2001 From: gohai Date: Tue, 10 Sep 2013 15:15:12 -0700 Subject: [PATCH] Image transparency for PDF output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before, drawing an image with transparency would result in black, opaque pixels in the PDF file. This change, figured out together with Jürg Lehni, fixes this. At its core, switching from drawImage(img, int, int, int, int, int, int, int, int, null) to drawImage(img, int, int, null) seems to do the trick - so this might have been a bug in iText all along. Signed-off-by: Jürg Lehni Signed-off-by: Gottfried Haider --- .../pdf/src/processing/pdf/PGraphicsPDF.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/java/libraries/pdf/src/processing/pdf/PGraphicsPDF.java b/java/libraries/pdf/src/processing/pdf/PGraphicsPDF.java index 2c6e8ae88..45b020710 100644 --- a/java/libraries/pdf/src/processing/pdf/PGraphicsPDF.java +++ b/java/libraries/pdf/src/processing/pdf/PGraphicsPDF.java @@ -404,22 +404,18 @@ public class PGraphicsPDF extends PGraphicsJava2D { ////////////////////////////////////////////////////////////// - /* - protected void imageImplAWT(java.awt.Image awtImage, + protected void imageImpl(PImage image, float x1, float y1, float x2, float y2, int u1, int v1, int u2, int v2) { pushMatrix(); translate(x1, y1); - int awtImageWidth = awtImage.getWidth(null); - int awtImageHeight = awtImage.getHeight(null); - scale((x2 - x1) / (float)awtImageWidth, - (y2 - y1) / (float)awtImageHeight); - g2.drawImage(awtImage, - 0, 0, awtImageWidth, awtImageHeight, - u1, v1, u2, v2, null); + int imageWidth = image.width; + int imageHeight = image.height; + scale((x2 - x1) / (float)imageWidth, + (y2 - y1) / (float)imageHeight); + g2.drawImage(image.getImage(), u1, v1, null); popMatrix(); } - */ //////////////////////////////////////////////////////////////