You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlgraphics.apache.org by ss...@apache.org on 2021/12/23 14:30:49 UTC
svn commit: r1896317 - in /xmlgraphics/commons/trunk/src: main/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java test/java/org/apache/xmlgraphics/ps/FormGeneratorTestCase.java
Author: ssteiner
Date: Thu Dec 23 14:30:49 2021
New Revision: 1896317
URL: http://svn.apache.org/viewvc?rev=1896317&view=rev
Log:
XGC-128: Remove image transparency for PS
Modified:
xmlgraphics/commons/trunk/src/main/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java
xmlgraphics/commons/trunk/src/test/java/org/apache/xmlgraphics/ps/FormGeneratorTestCase.java
Modified: xmlgraphics/commons/trunk/src/main/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/main/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java?rev=1896317&r1=1896316&r2=1896317&view=diff
==============================================================================
--- xmlgraphics/commons/trunk/src/main/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java (original)
+++ xmlgraphics/commons/trunk/src/main/java/org/apache/xmlgraphics/ps/ImageEncodingHelper.java Thu Dec 23 14:30:49 2021
@@ -19,6 +19,8 @@
package org.apache.xmlgraphics.ps;
+import java.awt.Color;
+import java.awt.Graphics2D;
import java.awt.color.ColorSpace;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
@@ -487,8 +489,18 @@ public class ImageEncodingHelper {
private final RenderedImage img;
- public RenderedImageEncoder(RenderedImage img) {
- this.img = img;
+ public RenderedImageEncoder(RenderedImage ri) {
+ if (ri instanceof BufferedImage && ((BufferedImage) ri).getType() == BufferedImage.TYPE_4BYTE_ABGR) {
+ BufferedImage convertedImg =
+ new BufferedImage(ri.getWidth(), ri.getHeight(), BufferedImage.TYPE_INT_RGB);
+ Graphics2D g = (Graphics2D) convertedImg.getGraphics();
+ g.setBackground(Color.WHITE);
+ g.clearRect(0, 0, ri.getWidth(), ri.getHeight());
+ g.drawImage((BufferedImage)ri, 0, 0, null);
+ g.dispose();
+ ri = convertedImg;
+ }
+ img = ri;
}
public void writeTo(OutputStream out) throws IOException {
Modified: xmlgraphics/commons/trunk/src/test/java/org/apache/xmlgraphics/ps/FormGeneratorTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/test/java/org/apache/xmlgraphics/ps/FormGeneratorTestCase.java?rev=1896317&r1=1896316&r2=1896317&view=diff
==============================================================================
--- xmlgraphics/commons/trunk/src/test/java/org/apache/xmlgraphics/ps/FormGeneratorTestCase.java (original)
+++ xmlgraphics/commons/trunk/src/test/java/org/apache/xmlgraphics/ps/FormGeneratorTestCase.java Thu Dec 23 14:30:49 2021
@@ -21,9 +21,9 @@ package org.apache.xmlgraphics.ps;
import java.awt.Color;
import java.awt.Dimension;
+import java.awt.Graphics2D;
import java.awt.color.ColorSpace;
-
import java.awt.geom.Dimension2D;
import java.awt.image.BufferedImage;
@@ -100,4 +100,28 @@ public class FormGeneratorTestCase {
//FlateDecode at DataSource so executed on page load rather than document load so viewer loads faster
Assert.assertTrue(test.contains("/DataSource form:Data /FlateDecode filter\n"));
}
+
+ @Test
+ public void testAlphaImage() throws IOException {
+ Assert.assertEquals(buildPSImage(BufferedImage.TYPE_4BYTE_ABGR), buildPSImage(BufferedImage.TYPE_INT_RGB));
+ }
+
+ private String buildPSImage(int type) throws IOException {
+ Dimension2D dimension = new Dimension2DDouble(1, 1);
+ BufferedImage im = new BufferedImage(1, 1, type);
+ Graphics2D g = (Graphics2D) im.getGraphics();
+ if (type == BufferedImage.TYPE_4BYTE_ABGR) {
+ g.setBackground(new Color(0, 0, 0, 0));
+ } else {
+ g.setBackground(Color.white);
+ }
+ g.clearRect(0, 0, im.getWidth(), im.getHeight());
+ g.drawImage(im, 0, 0, null);
+ g.dispose();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ImageFormGenerator formImageGen = new ImageFormGenerator("form", "title", dimension, im, false);
+ PSGenerator gen = new PSGenerator(out);
+ formImageGen.generate(gen);
+ return out.toString("utf-8");
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org