我正在创建自定义 SWT 小部件,但我遇到了透明度问题。我的课程扩展了画布,当我简单地写时,我的资源中有带有 alpha 图像的 png:
this.setBackgroundImage(Colors.getMenuButton()); //getMenuButton returns Image object
一切正常(透明),但我的对象必须是可调整大小的,所以我决定创建函数:
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;
}
它从源剪切左边框并粘贴到结果中,从源剪切中心,调整大小并粘贴到结果中,从源剪切右边框并粘贴到结果中。调整大小有效,但没有透明度(白色像素)。为什么?