java& SWT - 如何在图像上使用遮罩

时间:2012-02-17 08:00:40

标签: image swt transparent masking

我正在尝试对图像使用遮罩,以便将图像的一部分设置为透明。

从我读过的内容来看,SWT库支持它,但我找不到办法。我甚至找不到一个例子。

因此,我通过实现掩蔽部分创建了自己的方法: 首先,我找到一个未在图像上任何位置拍摄的RGB值,然后我将其设置为透明色。然后我拍摄遮蔽图像,然后使用它来放置正确的像素(透明或从源图像中取出)以创建新图像。

它有效,但我希望我有一个更简单的方法。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

Image类上的这个构造函数看起来可以完成这项工作:

public Image(Device device,
             ImageData source,
             ImageData mask)
来自javadoc的

......

从两个给定的ImageData对象构造此类的实例,其类型为SWT.ICON。这两个图像的大小必须相同。任一图像中的像素透明度都将被忽略。 屏幕图像应包含白色,无论图标在哪里可见,黑色图标在任何地方都是透明的。此外,只要图标透明,源图像应包含黑色。 参数: device - 要在其上创建图标的设备 source - 图标的颜色数据 mask - 图标的掩码数据