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/11/11 19:47:37 UTC

svn commit: r1769334 - /pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java

Author: tilman
Date: Fri Nov 11 19:47:37 2016
New Revision: 1769334

URL: http://svn.apache.org/viewvc?rev=1769334&view=rev
Log:
PDFBOX-3563: process softmasks in ExtractImages

Modified:
    pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java

Modified: pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java?rev=1769334&r1=1769333&r2=1769334&view=diff
==============================================================================
--- pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java (original)
+++ pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/ExtractImages.java Fri Nov 11 19:47:37 2016
@@ -39,6 +39,9 @@ import org.apache.pdfbox.pdmodel.graphic
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
 import org.apache.pdfbox.tools.imageio.ImageIOUtil;
 import org.apache.pdfbox.contentstream.PDFGraphicsStreamEngine;
+import org.apache.pdfbox.pdmodel.PDResources;
+import org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup;
+import org.apache.pdfbox.pdmodel.graphics.state.PDSoftMask;
 
 /**
  * Extracts the images from a PDF file.
@@ -192,7 +195,21 @@ public final class ExtractImages
 
         public void run() throws IOException
         {
-            processPage(getPage());
+            PDPage page = getPage();
+            processPage(page);
+            PDResources res = page.getResources();
+            for (COSName name : res.getExtGStateNames())
+            {
+                PDSoftMask softMask = res.getExtGState(name).getSoftMask();
+                if (softMask != null)
+                {
+                    PDTransparencyGroup group = softMask.getGroup();
+                    if (group != null)
+                    {
+                        processSoftMask(group);
+                    }
+                }
+            }
         }
 
         @Override