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/14 23:06:26 UTC

svn commit: r1587320 - in /pdfbox/trunk/pdfbox/src: main/java/org/apache/pdfbox/pdmodel/graphics/image/ test/java/org/apache/pdfbox/pdmodel/graphics/image/ test/resources/org/apache/pdfbox/pdmodel/graphics/image/

Author: tilman
Date: Mon Apr 14 21:06:25 2014
New Revision: 1587320

URL: http://svn.apache.org/r1587320
Log:
PDFBOX-2026: support grayscale JPEG files

Added:
    pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/graphics/image/jpeg256.jpg   (with props)
Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/ImageFactory.java
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactoryTest.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/ImageFactory.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/ImageFactory.java?rev=1587320&r1=1587319&r2=1587320&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/ImageFactory.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/ImageFactory.java Mon Apr 14 21:06:25 2014
@@ -47,7 +47,15 @@ class ImageFactory
     // sets Image XObject properties from an AWT buffered image
     protected static void setPropertiesFromAWT(BufferedImage awtImage, PDImageXObject pdImage)
     {
-        pdImage.setColorSpace(toPDColorSpace(awtImage.getColorModel().getColorSpace()));
+        if (awtImage.getColorModel().getNumComponents() == 1)
+        {
+            // 256 color (gray) JPEG
+            pdImage.setColorSpace(PDDeviceGray.INSTANCE);
+        }
+        else
+        {
+            pdImage.setColorSpace(toPDColorSpace(awtImage.getColorModel().getColorSpace()));
+        }
         pdImage.setBitsPerComponent(awtImage.getColorModel().getComponentSize(0));
         pdImage.setHeight(awtImage.getHeight());
         pdImage.setWidth(awtImage.getWidth());

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=1587320&r1=1587319&r2=1587320&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 Mon Apr 14 21:06:25 2014
@@ -46,12 +46,27 @@ public class JPEGFactoryTest extends Tes
 
     /**
      * Tests RGB JPEGFactory#createFromImage(PDDocument document, BufferedImage
-     * image)
+     * image) with color JPEG file
      */
     public void testCreateFromImageRGB() throws IOException
     {
         PDDocument document = new PDDocument();
         BufferedImage image = ImageIO.read(JPEGFactoryTest.class.getResourceAsStream("jpeg.jpg"));
+        assertEquals(3, image.getColorModel().getNumComponents());
+        PDImageXObject ximage = JPEGFactory.createFromImage(document, image);
+        validate(ximage, 8, 344, 287, "jpg");
+        document.close();
+    }
+
+    /**
+     * Tests RGB JPEGFactory#createFromImage(PDDocument document, BufferedImage
+     * image) with gray JPEG file
+     */
+    public void testCreateFromImage256() throws IOException
+    {
+        PDDocument document = new PDDocument();
+        BufferedImage image = ImageIO.read(JPEGFactoryTest.class.getResourceAsStream("jpeg256.jpg"));
+        assertEquals(1, image.getColorModel().getNumComponents());
         PDImageXObject ximage = JPEGFactory.createFromImage(document, image);
         validate(ximage, 8, 344, 287, "jpg");
         document.close();

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

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