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