From d1a9624a16d8ba5e6ef393c4a984790e44797c59 Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Fri, 24 Oct 2014 14:20:54 +0200 Subject: enable Alpha Channel images --- .../java/at/gv/egiz/pdfas/common/utils/ImageUtils.java | 17 ++++++----------- .../stamping/pdfbox/PDFAsVisualSignatureBuilder.java | 3 ++- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/ImageUtils.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/ImageUtils.java index b426e1ce..dcf1f17b 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/ImageUtils.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/utils/ImageUtils.java @@ -23,9 +23,11 @@ ******************************************************************************/ package at.gv.egiz.pdfas.common.utils; +import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.IndexColorModel; @@ -51,15 +53,8 @@ public class ImageUtils { .getLogger(ImageUtils.class); public static BufferedImage removeAlphaChannel(BufferedImage src) { - /*if (src.getColorModel().hasAlpha()) + if (src.getColorModel().hasAlpha()) { - // extract the alpha information - // WritableRaster alphaRaster = src. - //ColorModel cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_GRAY), - // false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); - //alpha = new BufferedImage(cm, alphaRaster, false, null); - // create a RGB image without alpha - BufferedImage image = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g = image.createGraphics(); g.setComposite(AlphaComposite.Src); @@ -67,8 +62,8 @@ public class ImageUtils { g.dispose(); return image; } - return src;*/ - + return src; + /* BufferedImage rgbImage = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_3BYTE_BGR); for (int x = 0; x < src.getWidth(); ++x) { @@ -77,7 +72,7 @@ public class ImageUtils { rgbImage.setRGB(x, y, src.getRGB(x, y) & 0xFFFFFF); } } - return rgbImage; + return rgbImage;*/ } public static BufferedImage convertRGBAToIndexed(BufferedImage src) { diff --git a/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureBuilder.java b/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureBuilder.java index 2b587d72..927469b1 100644 --- a/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureBuilder.java +++ b/pdf-as-pdfbox/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureBuilder.java @@ -596,7 +596,8 @@ public class PDFAsVisualSignatureBuilder extends PDVisibleSigBuilder { logger.debug("Scaling image to: " + iwidth + " x " + iheight); - if (img.getColorModel().hasAlpha()) { + if (img.getAlphaRaster() == null && + img.getColorModel().hasAlpha()) { img = ImageUtils.removeAlphaChannel(img); } //img = ImageUtils.convertRGBAToIndexed(img); -- cgit v1.2.3