在Eclipse中,我有一个使用GEF的视图和我显示的一些数字。我需要画一些背景。
对于某些背景知识,我使用包含一组预定义图像的文件夹系统(top_left.png
,top.png
,top_right.png
,left.png
,{{1}它,虽然我可以在需要时重新创建背景,但效率极低(特别是因为每次滚动视图或飞过时都会重绘)。
为了避免每次都要重新创建背景图像,我想使用缓存系统:我创建一个Image对象,在其上绘制每个图像,然后我将该图像缓存在一个地图中(该关键字是图像)。
为了能够拥有圆角,缓存图像需要具有透明背景,这就是我阻止的地方:
我尝试设置透明像素并使用相同的颜色进行绘制,但没有成功
我尝试使用ImageData根据每个源图像的alpha设置alpha,但在这种情况下,虽然透明度很好,但创建的图像都是白色的。
SWT是否有办法制作透明的背景图像,我可以在上面绘制一些图像?
更新
我找到了一个可能的解决方案,使用来自AWT的BufferedImage并使用http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/ConvertbetweenSWTImageandAWTBufferedImage.htm中找到的代码转换为SWT
虽然这是一个很好的基础,但这段代码实际上并没有处理透明度,而且我很快就修改了它(而且非常脏)。是否有可靠的代码将图像从AWT转换为SWT并反转?
我更倾向于解决我的问题,不涉及在图像格式之间来回转换。