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 2021/05/21 15:24:01 UTC

svn commit: r1890079 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java

Author: tilman
Date: Fri May 21 15:24:01 2021
New Revision: 1890079

URL: http://svn.apache.org/viewvc?rev=1890079&view=rev
Log:
PDFBOX-5196, PDFBOX-5137: 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=1890079&r1=1890078&r2=1890079&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 Fri May 21 15:24:01 2021
@@ -18,10 +18,13 @@ package org.apache.pdfbox.pdmodel.graphi
 import java.awt.Graphics;
 import java.awt.image.BufferedImage;
 
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 
 import java.util.Arrays;
 
@@ -279,6 +282,27 @@ class JPEGFactoryTest
         doWritePDF(document, ximage, TESTRESULTSDIR, "jpeg-ushort555rgb.pdf");
     }
 
+    /**
+     * PDFBOX-5137 and PDFBOX-5196: check that numFrameComponents and not numScanComponents is used
+     * to determine the color space.
+     *
+     * @throws IOException
+     */
+    @Test
+    void testPDFBox5137() throws IOException
+    {
+        byte[] ba = Files.readAllBytes(Paths.get("target/imgs", "PDFBOX-5196-lotus.jpg"));
+
+        PDDocument document = new PDDocument();
+
+        PDImageXObject ximage = JPEGFactory.createFromByteArray(document, ba);
+
+        validate(ximage, 8, 500, 500, "jpg", PDDeviceRGB.INSTANCE.getName());
+
+        doWritePDF(document, ximage, TESTRESULTSDIR, "PDFBOX-5196-lotus.pdf");
+        checkJpegStream(TESTRESULTSDIR, "PDFBOX-5196-lotus.pdf", new ByteArrayInputStream(ba));        
+    }
+
     // 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)