Author: damjan
Date: Thu Jun 23 19:34:58 2011
New Revision: 1139045

URL: http://svn.apache.org/viewvc?rev=1139045&view=rev
Log:
"Transparency detection on PNG" patch from Clement Escoffier,
and my test for it.

Jira issue key: SANSELAN-52


Modified:
    
commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java
    
commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java

Modified: 
commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java
URL: 
http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java?rev=1139045&r1=1139044&r2=1139045&view=diff
==============================================================================
--- 
commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java
 (original)
+++ 
commons/proper/sanselan/trunk/src/main/java/org/apache/sanselan/formats/png/PngImageParser.java
 Thu Jun 23 19:34:58 2011
@@ -547,8 +547,11 @@ public class PngImageParser extends Imag
         {
             isTransparent = true;
             pngChunktRNS = (PNGChunk) IHDRs.get(0);
-        } else
-            hasAlphaChannel(pngChunkIHDR.colorType);
+        } else {
+            // CE - Fix Alpha.
+            isTransparent = hasAlphaChannel(pngChunkIHDR.colorType);
+            // END FIX
+        }
 
         PNGChunkpHYs pngChunkpHYs = null;
 

Modified: 
commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java?rev=1139045&r1=1139044&r2=1139045&view=diff
==============================================================================
--- 
commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java
 (original)
+++ 
commons/proper/sanselan/trunk/src/test/java/org/apache/sanselan/formats/png/PngWriteReadTest.java
 Thu Jun 23 19:34:58 2011
@@ -98,6 +98,16 @@ public class PngWriteReadTest extends Sa
         }
     }
 
+    public void testTransparency() throws IOException, ImageReadException, 
ImageWriteException
+    {
+        // Test for https://issues.apache.org/jira/browse/SANSELAN-52
+        int[][] smallAscendingPixels = getAscendingRawData(256, 256);
+        byte[] pngBytes = Sanselan.writeImageToBytes(
+                imageDataToBufferedImage(smallAscendingPixels),
+                ImageFormat.IMAGE_FORMAT_PNG, null);
+        assertTrue(Sanselan.getImageInfo(pngBytes).isTransparent());
+    }
+
     private BufferedImage imageDataToBufferedImage(int[][] rawData)
     {
         int width = rawData[0].length;


Reply via email to