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/04/15 23:30:09 UTC

svn commit: r1587736 - in /pdfbox/branches/1.8: examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ examples/src/test/ examples/src/test/java/ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/ pdfbox/src/main/java/org/apache/pdfbox/...

Author: tilman
Date: Tue Apr 15 21:30:08 2014
New Revision: 1587736

URL: http://svn.apache.org/r1587736
Log:
PDFBOX-2030: fix PDPixelMap.createImageStream(), add tests for the parts that failed, improve examples

Added:
    pdfbox/branches/1.8/examples/src/test/
    pdfbox/branches/1.8/examples/src/test/java/
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/
    pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/
    pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/NullOutputStream.java   (with props)
    pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java   (with props)
    pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/
    pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/
    pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/bitonal.gif   (with props)
    pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/ccittg4.tif   (with props)
    pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/color.gif   (with props)
    pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/jpeg.jpg   (with props)
    pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/jpeg256.jpg   (with props)
    pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/png.png   (with props)
Modified:
    pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/AddImageToPDF.java
    pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ImageToPDF.java
    pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java

Modified: pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/AddImageToPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/AddImageToPDF.java?rev=1587736&r1=1587735&r2=1587736&view=diff
==============================================================================
--- pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/AddImageToPDF.java (original)
+++ pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/AddImageToPDF.java Tue Apr 15 21:30:08 2014
@@ -16,9 +16,11 @@
  */
 package org.apache.pdfbox.examples.pdmodel;
 
+import java.awt.image.BufferedImage;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import javax.imageio.ImageIO;
 
 import org.apache.pdfbox.exceptions.COSVisitorException;
 import org.apache.pdfbox.io.RandomAccessFile;
@@ -30,6 +32,7 @@ import org.apache.pdfbox.pdmodel.edit.PD
 
 import org.apache.pdfbox.pdmodel.graphics.xobject.PDCcitt;
 import org.apache.pdfbox.pdmodel.graphics.xobject.PDJpeg;
+import org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap;
 import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;
 
 
@@ -77,13 +80,15 @@ public class AddImageToPDF
             }
             else
             {
-                //BufferedImage awtImage = ImageIO.read( new File( image ) );
-                //ximage = new PDPixelMap(doc, awtImage);
-                throw new IOException( "Image type not supported:" + image );
+                BufferedImage awtImage = ImageIO.read( new File( image ) );
+                ximage = new PDPixelMap(doc, awtImage);
             }
             PDPageContentStream contentStream = new PDPageContentStream(doc, page, true, true);
 
-            contentStream.drawImage( ximage, 20, 20 );
+            //contentStream.drawImage(ximage, 20, 20 );
+            // better method inspired by http://stackoverflow.com/a/22318681/535646
+            float scale = 1f; // reduce this value if the image is too large
+            contentStream.drawXObject(ximage, 20, 20, ximage.getWidth()*scale, ximage.getHeight()*scale);
 
             contentStream.close();
             doc.save( outputFile );

Modified: pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ImageToPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ImageToPDF.java?rev=1587736&r1=1587735&r2=1587736&view=diff
==============================================================================
--- pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ImageToPDF.java (original)
+++ pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/ImageToPDF.java Tue Apr 15 21:30:08 2014
@@ -16,9 +16,11 @@
  */
 package org.apache.pdfbox.examples.pdmodel;
 
+import java.awt.image.BufferedImage;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
+import javax.imageio.ImageIO;
 
 import org.apache.pdfbox.exceptions.COSVisitorException;
 import org.apache.pdfbox.io.RandomAccessFile;
@@ -30,6 +32,7 @@ import org.apache.pdfbox.pdmodel.edit.PD
 
 import org.apache.pdfbox.pdmodel.graphics.xobject.PDCcitt;
 import org.apache.pdfbox.pdmodel.graphics.xobject.PDJpeg;
+import org.apache.pdfbox.pdmodel.graphics.xobject.PDPixelMap;
 import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;
 
 
@@ -75,13 +78,15 @@ public class ImageToPDF
             }
             else
             {
-                //BufferedImage awtImage = ImageIO.read( new File( image ) );
-                //ximage = new PDPixelMap(doc, awtImage);
-                throw new IOException( "Image type not supported:" + image );
+                BufferedImage awtImage = ImageIO.read( new File( image ) );
+                ximage = new PDPixelMap(doc, awtImage);
             }
             PDPageContentStream contentStream = new PDPageContentStream(doc, page);
 
-            contentStream.drawImage( ximage, 20, 20 );
+            //contentStream.drawImage(ximage, 20, 20 );
+            // better method inspired by http://stackoverflow.com/a/22318681/535646
+            float scale = 1f; // reduce this value if the image is too large
+            contentStream.drawXObject(ximage, 20, 20, ximage.getWidth()*scale, ximage.getHeight()*scale);
 
             contentStream.close();
             doc.save( file );

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java?rev=1587736&r1=1587735&r2=1587736&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMap.java Tue Apr 15 21:30:08 2014
@@ -17,6 +17,7 @@
 package org.apache.pdfbox.pdmodel.graphics.xobject;
 
 import java.awt.AlphaComposite;
+import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.Transparency;
 import java.awt.color.ColorSpace;
@@ -27,8 +28,10 @@ import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
 import java.awt.image.IndexColorModel;
 import java.awt.image.WritableRaster;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import javax.imageio.stream.MemoryCacheImageOutputStream;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -39,7 +42,6 @@ import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.common.PDStream;
 import org.apache.pdfbox.pdmodel.common.function.PDFunction;
-
 import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
@@ -79,7 +81,6 @@ public class PDPixelMap extends PDXObjec
     /**
      * Construct a pixel map image from an AWT image.
      * 
-     * 
      * @param doc The PDF document to embed the image in.
      * @param bi The image to read data from.
      *
@@ -114,31 +115,66 @@ public class PDPixelMap extends PDXObjec
         {
             rgbImage = bi;
         }
-        java.io.OutputStream os = null;
+        OutputStream os = null;
         try
         {
             int numberOfComponents = rgbImage.getColorModel().getNumComponents();
-            if (numberOfComponents == 3)
+            if (numberOfComponents != 3 && numberOfComponents != 1)
             {
-                setColorSpace( PDDeviceRGB.INSTANCE );
+                throw new IllegalStateException();
             }
-            else
-            {
-                if (numberOfComponents == 1)
+ 
+            int bpc;
+            ByteArrayOutputStream bos = new ByteArrayOutputStream();
+
+            //TODO: activate this when DeviceGray tests work
+//            if ((bi.getType() == BufferedImage.TYPE_BYTE_GRAY ||
+//                    || bi.getType() == BufferedImage.TYPE_BYTE_BINARY)
+//                    && bi.getColorModel().getPixelSize() <= 8)
+            if (bi.getType() == BufferedImage.TYPE_BYTE_BINARY
+                    && bi.getColorModel().getPixelSize() <= 8)
+            {
+                setColorSpace(new PDDeviceGray());
+                MemoryCacheImageOutputStream mcios = new MemoryCacheImageOutputStream(bos);
+
+                // grayscale images need one color per sample
+                bpc = bi.getColorModel().getPixelSize();
+                int h = rgbImage.getHeight();
+                int w = rgbImage.getWidth();
+                for (int y = 0; y < h; ++y)
                 {
-                    setColorSpace( new PDDeviceGray() );
+                    for (int x = 0; x < w; ++x)
+                    {
+                        mcios.writeBits(rgbImage.getRGB(x, y), bpc);
+                    }
                 }
-                else
+                mcios.writeBits(0, 7); // padding
+                mcios.flush();
+                mcios.close();
+            }
+            else
+            {
+                // RGB
+                setColorSpace(PDDeviceRGB.INSTANCE);
+                bpc = 8;
+                int h = rgbImage.getHeight();
+                int w = rgbImage.getWidth();
+                for (int y = 0; y < h; ++y)
                 {
-                    throw new IllegalStateException();
+                    for (int x = 0; x < w; ++x)
+                    {
+                        Color color = new Color(rgbImage.getRGB(x, y));
+                        bos.write(color.getRed());
+                        bos.write(color.getGreen());
+                        bos.write(color.getBlue());
+                    }
                 }
-            }
-            byte[] outData = new byte[width * height * numberOfComponents];
-            rgbImage.getData().getDataElements(0, 0, width, height, outData);
+            }           
+            
             // add FlateDecode compression
             getPDStream().addCompression();
             os = getCOSStream().createUnfilteredStream();
-            os.write(outData);
+            os.write(bos.toByteArray());
             
             COSDictionary dic = getCOSStream();
             dic.setItem( COSName.FILTER, COSName.FLATE_DECODE );
@@ -149,7 +185,7 @@ public class PDPixelMap extends PDXObjec
                 PDPixelMap smask = new PDPixelMap(doc, alphaImage);
                 dic.setItem(COSName.SMASK, smask);
             }
-            setBitsPerComponent( 8 );
+            setBitsPerComponent( bpc );
             setHeight( height );
             setWidth( width );
         }

Added: pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/NullOutputStream.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/NullOutputStream.java?rev=1587736&view=auto
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/NullOutputStream.java (added)
+++ pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/NullOutputStream.java Tue Apr 15 21:30:08 2014
@@ -0,0 +1,42 @@
+/*
+ * 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.xobject;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Dummy output stream, everything written there gets lost.
+ *
+ * @author Tilman Hausherr
+ */
+public class NullOutputStream extends OutputStream
+{
+    @Override
+    public void write(int b) throws IOException
+    {
+    }
+
+    @Override
+    public void write(byte[] b, int off, int len) throws IOException
+    {
+    }
+
+    @Override
+    public void write(byte[] b) throws IOException
+    {
+    }
+}

Propchange: pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/NullOutputStream.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java?rev=1587736&view=auto
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java (added)
+++ pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java Tue Apr 15 21:30:08 2014
@@ -0,0 +1,144 @@
+/*
+ * 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.xobject;
+
+import java.awt.Graphics;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import javax.imageio.ImageIO;
+import junit.framework.TestCase;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.util.ImageIOUtil;
+
+/**
+ *
+ * @author Tilman Hausherr
+ */
+public class PDPixelMapTest extends TestCase
+{
+    /**
+     * Tests RGB PDPixelMapTest() with color, gray and bitonal image
+     *
+     * @throws java.io.IOException
+     */
+    public void testCreateLosslessFromImageRGB() throws IOException
+    {
+        PDDocument document = new PDDocument();
+        BufferedImage image = ImageIO.read(this.getClass().getResourceAsStream("png.png"));
+
+        PDXObjectImage ximage = new PDPixelMap(document, image);
+        validate(ximage, 8, 344, 287, "png");
+        checkIdent(image, ximage.getRGBImage());
+
+        // Create a grayscale image
+        BufferedImage grayImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
+        Graphics g = grayImage.getGraphics();
+        g.drawImage(image, 0, 0, null);
+        g.dispose();
+        
+        ximage = new PDPixelMap(document, grayImage);
+        validate(ximage, 8, 344, 287, "png");
+        checkIdent(grayImage, ximage.getRGBImage());
+
+        // Create a bitonal image
+        BufferedImage bitonalImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
+        g = bitonalImage.getGraphics();
+        g.drawImage(image, 0, 0, null);
+        g.dispose();
+        
+        ximage = new PDPixelMap(document, bitonalImage);
+        checkIdent(bitonalImage, ximage.getRGBImage());
+        validate(ximage, 1, 344, 287, "png"); 
+        document.close();
+    }
+
+    /**
+     * Tests RGB PDPixelMapTest() with image from a bitonal GIF
+     *
+     * @throws java.io.IOException
+     */
+    public void testCreateLosslessFromBitonalGIF() throws IOException
+    {
+        PDDocument document = new PDDocument();
+        BufferedImage imageFromBitonalGif = ImageIO.read(this.getClass().getResourceAsStream("bitonal.gif"));
+
+        PDXObjectImage ximage = new PDPixelMap(document, imageFromBitonalGif);
+        checkIdent(imageFromBitonalGif, ximage.getRGBImage());
+        validate(ximage, 1, 344, 287, "png");
+        document.close();
+    }
+        
+    /**
+     * Tests RGB PDPixelMapTest() with image from a color GIF
+     *
+     * @throws java.io.IOException
+     */
+    public void testCreateLosslessFromColorGIF() throws IOException
+    {
+        PDDocument document = new PDDocument();
+        BufferedImage imageFromColorGif = ImageIO.read(this.getClass().getResourceAsStream("color.gif"));
+        PDXObjectImage ximage = new PDPixelMap(document, imageFromColorGif);
+        checkIdent(imageFromColorGif, ximage.getRGBImage());
+        validate(ximage, 8, 344, 287, "png");
+        document.close();
+    }
+
+    static public void validate(PDXObjectImage ximage, int bpc, int width, int height, String format) throws IOException
+    {
+        // check the dictionary
+        assertNotNull(ximage);
+        assertNotNull(ximage.getCOSStream());
+        assertTrue(ximage.getCOSStream().getFilteredLength() > 0);
+        assertEquals(bpc, ximage.getBitsPerComponent());
+        assertEquals(width, ximage.getWidth());
+        assertEquals(height, ximage.getHeight());
+        assertEquals(format, ximage.getSuffix());
+
+        // check the image
+        assertNotNull(ximage.getRGBImage());
+        assertEquals(ximage.getWidth(), ximage.getRGBImage().getWidth());
+        assertEquals(ximage.getHeight(), ximage.getRGBImage().getHeight());
+
+        boolean writeOk = ImageIOUtil.writeImage(ximage.getRGBImage(), format, new NullOutputStream());
+        assertTrue(writeOk);
+    }
+
+    /**
+     * Check whether images are identical.
+     *
+     * @param expectedImage
+     * @param actualImage
+     */
+    private void checkIdent(BufferedImage expectedImage, BufferedImage actualImage)
+    {
+        String errMsg = "";
+
+        int w = expectedImage.getWidth();
+        int h = expectedImage.getHeight();
+        for (int y = 0; y < h; ++y)
+        {
+            for (int x = 0; x < w; ++x)
+            {
+                if ((expectedImage.getRGB(x, y) & 0xFFFFFF) != (actualImage.getRGB(x, y) & 0xFFFFFF))
+                {
+                    errMsg = String.format("(%d,%d) %X != %X", x, y, expectedImage.getRGB(x, y) & 0xFFFFFF, actualImage.getRGB(x, y) & 0xFFFFFF);
+                }
+                assertEquals(errMsg, expectedImage.getRGB(x, y) & 0xFFFFFF, actualImage.getRGB(x, y) & 0xFFFFFF);
+            }
+        }
+    }
+}

Propchange: pdfbox/branches/1.8/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDPixelMapTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/bitonal.gif
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/bitonal.gif?rev=1587736&view=auto
==============================================================================
Binary file - no diff available.

Propchange: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/bitonal.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/ccittg4.tif
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/ccittg4.tif?rev=1587736&view=auto
==============================================================================
Binary file - no diff available.

Propchange: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/ccittg4.tif
------------------------------------------------------------------------------
    svn:mime-type = image/tiff

Added: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/color.gif
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/color.gif?rev=1587736&view=auto
==============================================================================
Binary file - no diff available.

Propchange: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/color.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/jpeg.jpg
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/jpeg.jpg?rev=1587736&view=auto
==============================================================================
Binary file - no diff available.

Propchange: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/jpeg.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/jpeg256.jpg
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/jpeg256.jpg?rev=1587736&view=auto
==============================================================================
Binary file - no diff available.

Propchange: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/jpeg256.jpg
------------------------------------------------------------------------------
    svn:mime-type = image/jpeg

Added: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/png.png
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/png.png?rev=1587736&view=auto
==============================================================================
Binary file - no diff available.

Propchange: pdfbox/branches/1.8/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/xobject/png.png
------------------------------------------------------------------------------
    svn:mime-type = image/png