[英]Transparent System Tray Icon on OSX with SWT
我对此感到非常困惑,无法分辨它是否是错误。
在我的SWT应用中,我正在创建系统任务栏图标。 它显示得很好,但是透明度被忽略了。 该图标存储为PNG,在OSX上的“预览”中查看该图标可看到透明效果,但是当它出现在托盘上时,背景为白色。
图标是2种颜色,背景设置为#00000,并在其上设置Alpha,然后实际图标设置为#010101。
这是图标的示例:
它在栏上的显示方式如下:
我还有其他带有实际颜色的图标可以工作并且具有适当的透明度,所以我不禁怀疑,这是某种渲染错误还是Mac处理系统任务栏图标的方式有些奇怪?
更新:频道和图层: http : //i.imgur.com/YZNUnXt.png
更新2:
划伤
我想通了,那是掌心的瞬间。
所有徽标都是从我制作的加载程序类加载的。 有一种方法可以指定徽标的大小,然后按比例缩小。 我最初是在缩放徽标,但是在创建新徽标后,不需要缩放徽标,但是我忘了更新该方法调用。
这是一些代码来说明发生了什么。
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没有。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.