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());
}