我正在创建自定义SWT小部件,但我在透明度方面遇到了问题。我的类扩展了画布,在我的资源中有带有alpha映像的png,当我只编写:
this.setBackgroundImage(Colors.getMenuButton()); //getMenuButton returns Image object一切都正常(透明),但我的对象必须是可调整大小的,所以我决定创建Fun广子:
protected Image BGHelper(Image src) {
Image i2 = new Image(Display.getDefault(),2,26);
GC gc2 = new GC(i2);
Image image = new Image(Display.getDefault(),this.getBounds().width,26);
GC gc = new GC(image);
gc.drawImage(src, 0, 0, 3, 25, 0, 0, 3, 26);
gc2.drawImage(src, 3, 0, 2, 25, 0, 0, 2, 26);
gc.drawImage(i2, 0, 0, 2, 25, 3, 0, this.getBounds().width-6, 26);
gc.drawImage(src,53, 0, 3, 26, this.getBounds().width-3, 0, 3, 26);
gc.dispose();
gc2.dispose();
return image;
}它从源头切割左边框,粘贴成效果,从源头切割中心,调整大小,粘贴成效果,从源头切右边界,粘贴成效果。大小调整工作,但没有透明度(白色像素)。为什么?
发布于 2012-11-02 03:32:20
请看下面的doc.It可能帮助您解决您的问题。
http://www.eclipse.org/articles/Article-SWT-images/graphics-resources.html#Transparency
https://stackoverflow.com/questions/13183932
复制相似问题