我想通了,這是一個面對手掌瞬間,那種。
所有徽標都是從我製作的裝載機類加載的。有一種方法可以指定徽標的大小,然後按比例縮小。我最初是在擴展徽標,但在創建新徽標後,它不需要縮放,但我忘記更新該方法。
下面是一些代碼來顯示發生了什麼。
public static Image getLogo(LogoType type, Display display, int width, int height) {
ClassLoader loader = AppLogo.class.getClassLoader();
InputStream stream = loader.getResourceAsStream(type.getFileName());
Image img;
if(width > 0 && height > 0) {
Image orig = new Image(display, stream);
img = new Image(display, width, height);
GC gc = new GC(img);
gc.drawImage(orig, 0, 0, orig.getBounds().width, orig.getBounds().height, 0, 0, width, height);
gc.dispose();
orig.dispose();
}
else {
img = new Image(display, stream);
}
return img;
}
看起來,使用GC縮放圖像會導致alpha值被忽略。我也嘗試在ImageData上設置透明度顏色,但仍然不起作用。我看到一些例子,人們使用算法進行縮放,在這種情況下,他們可以實際設置像素,並且它可以工作。但是drawImage沒有。
嘗試使用Alpha通道保存它,而不僅僅是Alpha顏色。 – whiskeyspider 2014-10-09 13:31:59
它有一個。包括顯示圖層和頻道的圖像。 – Jeremy 2014-10-09 20:59:24