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 2015/12/06 22:58:05 UTC
svn commit: r1718230 -
/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java
Author: tilman
Date: Sun Dec 6 21:58:05 2015
New Revision: 1718230
URL: http://svn.apache.org/viewvc?rev=1718230&view=rev
Log:
PDFBOX-3153: add test
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java?rev=1718230&r1=1718229&r2=1718230&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java Sun Dec 6 21:58:05 2015
@@ -17,11 +17,15 @@ package org.apache.pdfbox.pdmodel.graphi
import java.awt.Graphics;
import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
import javax.imageio.ImageIO;
import junit.framework.TestCase;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
@@ -29,6 +33,7 @@ import org.apache.pdfbox.pdmodel.graphic
import static org.apache.pdfbox.pdmodel.graphics.image.ValidateXImage.colorCount;
import static org.apache.pdfbox.pdmodel.graphics.image.ValidateXImage.doWritePDF;
import static org.apache.pdfbox.pdmodel.graphics.image.ValidateXImage.validate;
+import static org.junit.Assert.assertArrayEquals;
/**
* Unit tests for JPEGFactory
@@ -58,6 +63,7 @@ public class JPEGFactoryTest extends Tes
validate(ximage, 8, 344, 287, "jpg", PDDeviceRGB.INSTANCE.getName());
doWritePDF(document, ximage, testResultsDir, "jpegrgbstream.pdf");
+ checkJpegStream(testResultsDir, "jpegrgbstream.pdf", JPEGFactoryTest.class.getResourceAsStream("jpeg.jpg"));
}
/**
@@ -72,6 +78,7 @@ public class JPEGFactoryTest extends Tes
validate(ximage, 8, 344, 287, "jpg", PDDeviceGray.INSTANCE.getName());
doWritePDF(document, ximage, testResultsDir, "jpeg256stream.pdf");
+ checkJpegStream(testResultsDir, "jpeg256stream.pdf", JPEGFactoryTest.class.getResourceAsStream("jpeg256.jpg"));
}
/**
@@ -191,4 +198,23 @@ public class JPEGFactoryTest extends Tes
doWritePDF(document, ximage, testResultsDir, "jpeg-4bargb.pdf");
}
+
+ // check whether it is possible to extract the jpeg stream exactly
+ // as it was passed to createFromStream
+ private void checkJpegStream(File testResultsDir, String filename, InputStream resourceStream)
+ throws IOException
+ {
+ PDDocument doc = PDDocument.load(new File(testResultsDir, filename));
+ PDImageXObject img =
+ (PDImageXObject) doc.getPage(0).getResources().getXObject(COSName.getPDFName("Im1"));
+ InputStream dctStream = img.createInputStream(Arrays.asList(COSName.DCT_DECODE.getName()));
+ ByteArrayOutputStream baos1 = new ByteArrayOutputStream();
+ ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
+ IOUtils.copy(resourceStream, baos1);
+ IOUtils.copy(dctStream, baos2);
+ resourceStream.close();
+ dctStream.close();
+ assertArrayEquals(baos1.toByteArray(), baos2.toByteArray());
+ doc.close();
+ }
}