1

カスタム SWT ウィジェットを作成していますが、透過性に問題があります。私のクラスはキャンバスを拡張します。単純に書くと、リソースにアルファ画像を含む 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 に答える