3

我有一个用于 Java 的图形系统,它允许通过指定多个图像来为对象“贴上墙纸”,这些图像可以应用(相对)复杂的对齐和调整大小选项。

为了充分发挥作用(尤其是在功率非常低的设备上),我在第一次绘制壁纸时将图像绘制到内部图像,然后将该合成图像复制到目标图形上下文以将其放到屏幕上。只有在调整对象大小时才会重新创建合成,因此后续重绘的唯一工作是将剪切区域从合成复制到目标图形上下文。

该解决方案非常有效,除了当我有具有 alpha 通道透明度的 PNG 图像时,在绘制复合材料时 alpha 通道会丢失 - 也就是说,复合材料的所有像素都完全不透明。因此,随后复制到屏幕上的图形上下文无法让墙纸对象背后的内容显示出来。

我确实设法使用 RGBImageFilter 过滤掉完全透明的像素,但我看不到一个解决方案来使混合透明度工作。

有谁知道我可以用完整的 alpha 通道绘制图像,并在两个具有 alpha 值的像素重叠时合并?

4

1 回答 1

3

合成图像使用什么类型的图像?

您应该使用 BufferedImage 并将其类型设置为允许半透明的 TYPE_INT_ARGB。

于 2009-08-03T18:55:20.130 回答