You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/02/26 22:20:20 UTC

svn commit: r1572259 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdmodel/graphics/image/PDInlineImage.java util/operator/pagedrawer/BeginInlineImage.java

Author: jahewson
Date: Wed Feb 26 21:20:19 2014
New Revision: 1572259

URL: http://svn.apache.org/r1572259
Log:
PDFBOX-1950: support image masks for inline images

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java?rev=1572259&r1=1572258&r2=1572259&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImage.java Wed Feb 26 21:20:19 2014
@@ -28,12 +28,9 @@ import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.cos.COSStream;
 import org.apache.pdfbox.filter.DecodeResult;
 import org.apache.pdfbox.filter.Filter;
 import org.apache.pdfbox.filter.FilterFactory;
-import org.apache.pdfbox.io.RandomAccess;
-import org.apache.pdfbox.io.RandomAccessBuffer;
 import org.apache.pdfbox.pdmodel.common.COSArrayList;
 import org.apache.pdfbox.pdmodel.common.PDMemoryStream;
 import org.apache.pdfbox.pdmodel.common.PDStream;

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java?rev=1572259&r1=1572258&r2=1572259&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/BeginInlineImage.java Wed Feb 26 21:20:19 2014
@@ -22,6 +22,8 @@ import java.util.List;
 
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.pdfviewer.PageDrawer;
+import org.apache.pdfbox.pdmodel.graphics.color.PDColor;
+import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.image.PDInlineImage;
 import org.apache.pdfbox.util.Matrix;
 import org.apache.pdfbox.util.PDFOperator;
@@ -43,8 +45,17 @@ public final class BeginInlineImage exte
         PDInlineImage image = new PDInlineImage(operator.getImageParameters(),
                                                 operator.getImageData(),
                                                 context.getResources().getColorSpaces());
-
-        BufferedImage awtImage = image.getImage();
+        BufferedImage awtImage;
+        if (image.isStencil())
+        {
+            PDColorSpace colorSpace = drawer.getGraphicsState().getNonStrokingColorSpace();
+            PDColor color = drawer.getGraphicsState().getNonStrokingColor();
+            awtImage = image.getStencilImage(colorSpace.toPaint(color)); // <--- TODO: pass page height?
+        }
+        else
+        {
+            awtImage = image.getImage();
+        }
         Matrix ctm = drawer.getGraphicsState().getCurrentTransformationMatrix();
         drawer.drawImage(awtImage, ctm.createAffineTransform());
     }