Author: vhennebert
Date: Wed Jan 29 10:37:39 2014
New Revision: 1562398

URL: http://svn.apache.org/r1562398
Log:
Brought the branch in sync with rev. r1559284 of trunk

Modified:
    xmlgraphics/fop/branches/Temp_InlineContainer/   (props changed)
    
xmlgraphics/fop/branches/Temp_InlineContainer/lib/xmlgraphics-commons-svn-trunk.jar
    
xmlgraphics/fop/branches/Temp_InlineContainer/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java

Propchange: xmlgraphics/fop/branches/Temp_InlineContainer/
------------------------------------------------------------------------------
  Merged /xmlgraphics/fop/trunk:r1557820-1562395

Modified: 
xmlgraphics/fop/branches/Temp_InlineContainer/lib/xmlgraphics-commons-svn-trunk.jar
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_InlineContainer/lib/xmlgraphics-commons-svn-trunk.jar?rev=1562398&r1=1562397&r2=1562398&view=diff
==============================================================================
Binary files - no diff available.

Modified: 
xmlgraphics/fop/branches/Temp_InlineContainer/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_InlineContainer/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java?rev=1562398&r1=1562397&r2=1562398&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/Temp_InlineContainer/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java
 (original)
+++ 
xmlgraphics/fop/branches/Temp_InlineContainer/src/java/org/apache/fop/render/pdf/AbstractImageAdapter.java
 Wed Jan 29 10:37:39 2014
@@ -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 AbstractImageAdapt
                     + " 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);



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to