You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2016/12/13 19:38:21 UTC
svn commit: r1774086 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox:
contentstream/PDFStreamEngine.java rendering/PageDrawer.java
Author: tilman
Date: Tue Dec 13 19:38:20 2016
New Revision: 1774086
URL: http://svn.apache.org/viewvc?rev=1774086&view=rev
Log:
PDFBOX-3000: pass initial CTM of softmask to transparency group
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java?rev=1774086&r1=1774085&r2=1774086&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java Tue Dec 13 19:38:20 2016
@@ -187,6 +187,8 @@ public abstract class PDFStreamEngine
protected void processSoftMask(PDTransparencyGroup group) throws IOException
{
saveGraphicsState();
+ Matrix softMaskCTM = getGraphicsState().getSoftMask().getInitialTransformationMatrix();
+ getGraphicsState().setCurrentTransformationMatrix(softMaskCTM);
processTransparencyGroup(group);
restoreGraphicsState();
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1774086&r1=1774085&r2=1774086&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Tue Dec 13 19:38:20 2016
@@ -428,7 +428,7 @@ public class PageDrawer extends PDFGraph
{
return parentPaint;
}
- TransparencyGroup transparencyGroup = new TransparencyGroup(softMask.getGroup(), true);
+ TransparencyGroup transparencyGroup = new TransparencyGroup(softMask.getGroup(), true, softMask.getInitialTransformationMatrix());
BufferedImage image = transparencyGroup.getImage();
BufferedImage gray = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
if (COSName.ALPHA.equals(softMask.getSubType()))
@@ -1058,7 +1058,8 @@ public class PageDrawer extends PDFGraph
@Override
public void showTransparencyGroup(PDTransparencyGroup form) throws IOException
{
- TransparencyGroup group = new TransparencyGroup(form, false);
+ TransparencyGroup group =
+ new TransparencyGroup(form, false, getGraphicsState().getCurrentTransformationMatrix());
graphics.setComposite(getGraphicsState().getNonStrokingJavaComposite());
setClip();
@@ -1131,13 +1132,12 @@ public class PageDrawer extends PDFGraph
/**
* Creates a buffered image for a transparency group result.
*/
- private TransparencyGroup(PDTransparencyGroup form, boolean isSoftMask) throws IOException
+ private TransparencyGroup(PDTransparencyGroup form, boolean isSoftMask, Matrix ctm) throws IOException
{
Graphics2D g2dOriginal = graphics;
Area lastClipOriginal = lastClip;
// get the CTM x Form Matrix transform
- Matrix ctm = getGraphicsState().getCurrentTransformationMatrix();
Matrix transform = Matrix.concatenate(ctm, form.getMatrix());
// transform the bbox