2

我正在尝试在电视信号上绘制一张 transparent.png 图像(因此在渲染之前进行混合有点过时了)。

当我绘制透明矩形时,我可以设置 SrcOver 并为我的背景颜色指定一个 alpha 并且它会起作用:

((DVBGraphics) g).setDVBComposite(DVBAlphaComposite.SrcOver);

但现在我实际上正在尝试使用设置了透明度的 png 但这不起作用(它只是实心的)。

如果我设置 XOR 模式:

g.setXORMode(Color.white);

设置 SrcOver 后,整个图像变为半透明,而不仅仅是指定的点。此外,设置为“透明”的部分仍然可见。

任何人都可以指出使这项工作的神奇调用集吗?

(另外,swing 不可用——只是 java 1.4 的大部分)。

4

1 回答 1

0

我只能建议您重新检查所有内容;我之前使用 AWT 绘制了 PNG 图像,它工作得很好,只是做了显而易见的事情:

private final Image                     image;                                  //

protected void paintForeground(Graphics2D gc, int wid, int hgt) {
    ...
    gc.drawImage(image,dx,dy,(dx+width),(dy+height),0,0,width,height,null);
    ...
    }

除了在 J2ME 1.1 平台上之外,这会以尊重的图像透明度进行绘制。

绘图模式是普通绘制,而不是 XOR。

于 2009-02-17T05:56:25.667 回答