Bläddra i källkod

Support for soft masks (transparency) with ImageIO image adapter. Should help with transparent PNGs.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@503323 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-0_94
Jeremias Maerki 17 år sedan
förälder
incheckning
d8c9af01d3
2 ändrade filer med 28 tillägg och 13 borttagningar
  1. 25
    13
      src/java-1.4/org/apache/fop/image/ImageIOImage.java
  2. 3
    0
      status.xml

+ 25
- 13
src/java-1.4/org/apache/fop/image/ImageIOImage.java Visa fil

@@ -46,6 +46,8 @@ import org.w3c.dom.NodeList;
*/
public class ImageIOImage extends AbstractFopImage {

private byte[] softMask = null;

/**
* Creates a new ImageIOImage.
* @param info the image info from the ImageReader
@@ -163,22 +165,14 @@ public class ImageIOImage extends AbstractFopImage {
}
}
} else {
// TRANSLUCENT
/*
* this.isTransparent = false;
* for (int i = 0; i < this.width * this.height; i++) {
* if (cm.getAlpha(tmpMap[i]) == 0) {
* this.isTransparent = true;
* this.transparentColor = new PDFColor(cm.getRed(tmpMap[i]),
* cm.getGreen(tmpMap[i]), cm.getBlue(tmpMap[i]));
* break;
* }
* }
* // or use special API...
*/
//TODO Is there another case?
this.isTransparent = false;
}
} else {
// TRANSLUCENT
this.softMask = new byte[width * height];
imageData.getAlphaRaster().getDataElements(
0, 0, width, height, this.softMask);
this.isTransparent = false;
}
} else {
@@ -217,5 +211,23 @@ public class ImageIOImage extends AbstractFopImage {
return loadDefaultOriginalData();
}
/** @see org.apache.fop.image.FopImage#hasSoftMask() */
public boolean hasSoftMask() {
if (this.bitmaps == null && this.raw == null) {
loadBitmap();
}

return (this.softMask != null);
}

/** @see org.apache.fop.image.FopImage#getSoftMask() */
public byte[] getSoftMask() {
if (this.bitmaps == null) {
loadBitmap();
}

return this.softMask;
}

}


+ 3
- 0
status.xml Visa fil

@@ -28,6 +28,9 @@

<changes>
<release version="FOP Trunk">
<action context="Code" dev="JM" type="add">
Support for soft masks (transparency) with ImageIO image adapter.
</action>
<action context="Code" dev="LF" type="fix" fixes-bug="41019">
Fix incorrect behaviour of the BreakingAlgorithm when some inline content is wider than
the available ipd, causing a restart.

Laddar…
Avbryt
Spara