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 2014/03/16 12:06:23 UTC

svn commit: r1578034 - in /pdfbox/trunk/pdfbox/src: main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java test/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImageTest.java

Author: tilman
Date: Sun Mar 16 11:06:22 2014
New Revision: 1578034

URL: http://svn.apache.org/r1578034
Log:
PDFBOX-1983: added quick fix for regression, added test for PDInlineImage

Added:
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImageTest.java   (with props)
Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java?rev=1578034&r1=1578033&r2=1578034&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java Sun Mar 16 11:06:22 2014
@@ -33,6 +33,7 @@ import org.apache.pdfbox.pdmodel.graphic
 
 import javax.imageio.stream.ImageInputStream;
 import javax.imageio.stream.MemoryCacheImageInputStream;
+import org.apache.pdfbox.pdmodel.common.PDMemoryStream;
 
 /**
  * Reads a sampled image from a PDF file.
@@ -107,7 +108,15 @@ final class SampledImageReader
      */
     public static BufferedImage getRGBImage(PDImage pdImage, COSArray colorKey) throws IOException
     {
-        if (pdImage.getStream().getStream().getFilteredLength() == 0)
+        if (pdImage.getStream() instanceof PDMemoryStream)
+        {
+            // for inline images
+            if (pdImage.getStream().getLength() == 0)
+            {
+                throw new IOException("Image stream is empty");
+            }
+        }
+        else if (pdImage.getStream().getStream().getFilteredLength() == 0)
         {
             throw new IOException("Image stream is empty");
         }

Added: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImageTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImageTest.java?rev=1578034&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImageTest.java (added)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImageTest.java Sun Mar 16 11:06:22 2014
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2014 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.pdmodel.graphics.image;
+
+import java.awt.Color;
+import java.awt.Paint;
+import java.io.IOException;
+import junit.framework.TestCase;
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSName;
+
+/**
+ * Unit tests for PDInlineImage
+ *
+ * @author Tilman Hausherr
+ */
+public class PDInlineImageTest extends TestCase
+{
+    /**
+     * Tests PDInlineImage#PDInlineImage(COSDictionary parameters, byte[] data,
+     * Map<String, PDColorSpace> colorSpaces)
+     */
+    public void testInlineImage() throws IOException
+    {
+        COSDictionary dict = new COSDictionary();
+        dict.setBoolean(COSName.IM, true);
+        dict.setInt(COSName.W, 30);
+        dict.setInt(COSName.H, 28);
+        dict.setInt(COSName.BPC, 1);
+        byte[] data = new byte[113];
+        PDInlineImage inlineImage = new PDInlineImage(dict, data, null);
+        assertTrue(inlineImage.isStencil());
+        assertEquals(30, inlineImage.getWidth());
+        assertEquals(28, inlineImage.getHeight());
+        assertEquals(1, inlineImage.getBitsPerComponent());
+        Paint paint = new Color(0,0,0);
+        inlineImage.getStencilImage(paint);
+    }
+}

Propchange: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/PDInlineImageTest.java
------------------------------------------------------------------------------
    svn:eol-style = native