You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2014/01/16 07:33:39 UTC
svn commit: r1558702 - in /pdfbox/branches/1.8: ./
pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java
Author: lehmi
Date: Thu Jan 16 06:33:38 2014
New Revision: 1558702
URL: http://svn.apache.org/r1558702
Log:
PDFBOX-1829: avoid NPE when creating a smasked image
Modified:
pdfbox/branches/1.8/ (props changed)
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java
Propchange: pdfbox/branches/1.8/
------------------------------------------------------------------------------
Merged /pdfbox/trunk:r1555186
Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java?rev=1558702&r1=1558701&r2=1558702&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java Thu Jan 16 06:33:38 2014
@@ -137,24 +137,32 @@ public abstract class PDXObjectImage ext
public BufferedImage applyMasks(BufferedImage baseImage) throws IOException
{
- if (getImageMask())
- {
- return imageMask(baseImage);
- }
- if(getMask() != null)
- {
- return mask(baseImage);
- }
- PDXObjectImage smask = getSMaskImage();
- if(smask != null)
- {
- BufferedImage smaskBI = smask.getRGBImage();
- COSArray decodeArray = smask.getDecode();
- CompositeImage compositeImage = new CompositeImage(baseImage, smaskBI);
- BufferedImage rgbImage = compositeImage.createMaskedImage(decodeArray);
- return rgbImage;
- }
- return baseImage;
+ if (getImageMask())
+ {
+ return imageMask(baseImage);
+ }
+ if (getMask() != null)
+ {
+ return mask(baseImage);
+ }
+ PDXObjectImage smask = getSMaskImage();
+ if (smask != null)
+ {
+ BufferedImage smaskBI = smask.getRGBImage();
+ if (smaskBI != null)
+ {
+ COSArray decodeArray = smask.getDecode();
+ CompositeImage compositeImage = new CompositeImage(baseImage, smaskBI);
+ BufferedImage rgbImage = compositeImage.createMaskedImage(decodeArray);
+ return rgbImage;
+ }
+ else
+ {
+ // this may happen if the smask is somehow broken, e.g. unsupported filter
+ LOG.warn("masking getRGBImage returned NULL");
+ }
+ }
+ return baseImage;
}
public boolean hasMask() throws IOException