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;