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