Author: lehmi Date: Fri Dec 16 06:58:03 2011 New Revision: 1215049 URL: http://svn.apache.org/viewvc?rev=1215049&view=rev Log: PDFBOX-1145: fall back to black as stencil color when extracting image masks
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java?rev=1215049&r1=1215048&r2=1215049&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java Fri Dec 16 06:58:03 2011 @@ -17,6 +17,7 @@ package org.apache.pdfbox.pdmodel.graphics.xobject; import java.awt.AlphaComposite; +import java.awt.Color; import java.awt.Graphics2D; import java.awt.Transparency; import java.awt.image.DataBuffer; @@ -227,7 +228,7 @@ public class PDPixelMap extends PDXObjec int value = (array[ i * width + j ] + 256) % 256; if (invert) { - input[0] = 1-(value / maxValue) ; + input[0] = 1-(value / maxValue); } else { @@ -326,7 +327,17 @@ public class PDPixelMap extends PDXObjec { BufferedImage stencilMask = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics2D graphics = (Graphics2D)stencilMask.getGraphics(); - graphics.setColor(getStencilColor().getJavaColor()); + if (getStencilColor() != null) + { + graphics.setColor(getStencilColor().getJavaColor()); + } + else + { + // this might happen when using ExractImages, see PDFBOX-1145 + LOG.debug("no stencil color for PixelMap found, using Color.BLACK instead."); + graphics.setColor(Color.BLACK); + } + graphics.fillRect(0, 0, width, height); // assume default values ([0,1]) for the DecodeArray // TODO DecodeArray == [1,0]