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