1

我正在创建自定义 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;   
}

它从源剪切左边框并粘贴到结果中,从源剪切中心,调整大小并粘贴到结果中,从源剪切右边框并粘贴到结果中。调整大小有效,但没有透明度(白色像素)。为什么?

4

1 回答 1

1

请查看以下文档。它可能会帮助您解决问题。

http://www.eclipse.org/articles/Article-SWT-images/graphics-resources.html#Transparency

于 2012-11-02T03:32:20.337 回答