You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/03/22 22:01:45 UTC
svn commit: r1580321 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java
Author: jahewson
Date: Sat Mar 22 21:01:45 2014
New Revision: 1580321
URL: http://svn.apache.org/r1580321
Log:
PDFBOX-1955: perform DeviceGray color conversion ourselves
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java?rev=1580321&r1=1580320&r2=1580321&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceGray.java Sat Mar 22 21:01:45 2014
@@ -18,6 +18,8 @@ package org.apache.pdfbox.pdmodel.graphi
import org.apache.pdfbox.cos.COSName;
+import java.awt.Color;
+import java.awt.Graphics2D;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
@@ -74,12 +76,31 @@ public final class PDDeviceGray extends
@Override
public float[] toRGB(float[] value)
{
- return COLOR_SPACE_GRAY.toRGB(value);
+ return new float[] { value[0], value[0], value[0] };
}
@Override
public BufferedImage toRGBImage(WritableRaster raster) throws IOException
{
- return toRGBImageAWT(raster, COLOR_SPACE_GRAY);
+ int width = raster.getWidth();
+ int height = raster.getHeight();
+
+ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+
+ int[] gray = new int[1];
+ int[] rgb = new int[3];
+ for (int y = 0; y < height; y++)
+ {
+ for (int x = 0; x < width; x++)
+ {
+ raster.getPixel(x, y, gray);
+ rgb[0] = gray[0];
+ rgb[1] = gray[0];
+ rgb[2] = gray[0];
+ image.getRaster().setPixel(x, y, rgb);
+ }
+ }
+
+ return image;
}
}