浏览代码

FOP-2339: GIF to PS transparency is black; patch by Simon Steiner

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1584420 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-2_0
Luis Bernardo 10 年前
父节点
当前提交
f8dd89a164
共有 1 个文件被更改,包括 14 次插入0 次删除
  1. 14
    0
      src/java/org/apache/fop/render/ps/PSImageHandlerRenderedImage.java

+ 14
- 0
src/java/org/apache/fop/render/ps/PSImageHandlerRenderedImage.java 查看文件



package org.apache.fop.render.ps; package org.apache.fop.render.ps;


import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel; import java.awt.image.ColorModel;
import java.awt.image.RenderedImage; import java.awt.image.RenderedImage;
import java.io.IOException; import java.io.IOException;
Rectangle2D targetRect = new Rectangle2D.Double(x, y, w, h); Rectangle2D targetRect = new Rectangle2D.Double(x, y, w, h);


RenderedImage ri = imageRend.getRenderedImage(); RenderedImage ri = imageRend.getRenderedImage();

if (ri instanceof BufferedImage && ri.getColorModel().hasAlpha()) {
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;
}

ImageEncoder encoder = ImageEncodingHelper.createRenderedImageEncoder(ri); ImageEncoder encoder = ImageEncodingHelper.createRenderedImageEncoder(ri);
Dimension imgDim = new Dimension(ri.getWidth(), ri.getHeight()); Dimension imgDim = new Dimension(ri.getWidth(), ri.getHeight());
String imgDescription = ri.getClass().getName(); String imgDescription = ri.getClass().getName();

正在加载...
取消
保存