From f788f5d12b85ddecf7daa95f4eb735139080f399 Mon Sep 17 00:00:00 2001 From: Luis Bernardo Date: Fri, 17 Jan 2014 23:35:00 +0000 Subject: [PATCH] FOP-1801: conversion B&W GIF=>PDF creates PDF with colorspace RGB if FOP0.95 and Gray if FOP0.20.5; patch submitted by Thanasis Giannimaras following suggestion by Jeremias Maerki git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1559284 13f79535-47bb-0310-9956-ffa450edef68 --- lib/xmlgraphics-commons-svn-trunk.jar | Bin 631612 -> 632012 bytes .../fop/render/pdf/AbstractImageAdapter.java | 38 +++++++++++++----- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/lib/xmlgraphics-commons-svn-trunk.jar b/lib/xmlgraphics-commons-svn-trunk.jar index 34e4d2b448c4fa48ee2c45942ef04d7d72d29ad6..11b445c090accd68f0ea956e079b2cf7bd968755 100644 GIT binary patch delta 29607 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 delta 29006 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¬a~fDd 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 diff --git a/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java b/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java index 58299c528..471efc567 100644 --- a/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java +++ b/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java @@ -23,6 +23,8 @@ import java.awt.color.ICC_Profile; import java.awt.image.DataBufferByte; import java.awt.image.IndexColorModel; import java.awt.image.Raster; +import java.io.IOException; +import java.util.Arrays; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.commons.logging.Log; @@ -239,24 +241,40 @@ public abstract class AbstractImageAdapter implements PDFImage { + " The image may not be handled correctly." + " Base color space: " + icm.getColorSpace() + " Image: " + image.getInfo()); } - indexed.add(new PDFName(toPDFColorSpace(icm.getColorSpace()).getName())); + ByteArrayOutputStream baout = new ByteArrayOutputStream(); int c = icm.getMapSize(); int hival = c - 1; if (hival > MAX_HIVAL) { throw new UnsupportedOperationException("hival must not go beyond " + MAX_HIVAL); } - indexed.add(Integer.valueOf(hival)); + boolean isDeviceGray = false; int[] palette = new int[c]; icm.getRGBs(palette); - ByteArrayOutputStream baout = new ByteArrayOutputStream(); - for (int i = 0; i < c; i++) { - // TODO Probably doesn't work for non RGB based color spaces - // See log warning above - int entry = palette[i]; - baout.write((entry & 0xFF0000) >> 16); - baout.write((entry & 0xFF00) >> 8); - baout.write(entry & 0xFF); + byte[] reds = new byte[c]; + byte[] greens = new byte[c]; + byte[] blues = new byte[c]; + icm.getReds(reds); + icm.getGreens(greens); + icm.getBlues(blues); + isDeviceGray = Arrays.equals(reds, blues) && Arrays.equals(blues, greens); + if (isDeviceGray) { + indexed.add(new PDFName("DeviceGray")); + try { + baout.write(blues); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + indexed.add(new PDFName(toPDFColorSpace(icm.getColorSpace()).getName())); + for (int i = 0; i < c; i++) { + int entry = palette[i]; + baout.write((entry & 0xFF0000) >> 16); + baout.write((entry & 0xFF00) >> 8); + baout.write(entry & 0xFF); + } } + indexed.add(hival); + indexed.add(baout.toByteArray()); dict.put("ColorSpace", indexed); -- 2.39.5