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:26 UTC
svn commit: r1774087 - in
/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox:
contentstream/PDFStreamEngine.java rendering/PageDrawer.java
Author: tilman
Date: Tue Dec 13 19:38:26 2016
New Revision: 1774087
URL: http://svn.apache.org/viewvc?rev=1774087&view=rev
Log:
PDFBOX-3000: pass initial CTM of softmask to transparency group
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java?rev=1774087&r1=1774086&r2=1774087&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/contentstream/PDFStreamEngine.java Tue Dec 13 19:38:26 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/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1774087&r1=1774086&r2=1774087&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Tue Dec 13 19:38:26 2016
@@ -484,7 +484,8 @@ public class PageDrawer extends PDFGraph
*/
private Raster createSoftMaskRaster(PDSoftMask softMask) throws IOException
{
- TransparencyGroup transparencyGroup = new TransparencyGroup(softMask.getGroup(), true);
+ TransparencyGroup transparencyGroup =
+ new TransparencyGroup(softMask.getGroup(), true, softMask.getInitialTransformationMatrix());
COSName subtype = softMask.getSubType();
if (COSName.ALPHA.equals(subtype))
{
@@ -1134,7 +1135,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();
@@ -1183,13 +1185,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