2012-11-01 133 views
1

我正在創建自定義SWT小部件,但是我遇到了透明度問題。我的類擴展畫布,我曾與阿爾法圖像在我的資源,得到了PNG時,我只是寫:Java:gc.drawimage和透明度

this.setBackgroundImage(Colors.getMenuButton()); //getMenuButton returns Image object 

一切工作正常(透明度),但我的對象必須是可調整大小的,所以我決定創建funcion:

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; 
} 

它減少從源頭左邊框並粘貼到結果,從源剪輯中心,調整大小並粘貼到結果,從源頭削減右邊框粘貼到結果。調整大小作品沒有透明度(白色像素)。爲什麼?

回答