gpt4 book ai didi

cocoa - 是否有 API 可以在 GTK 和 OSX 上进行每像素 Alpha 混合?

转载 作者:行者123 更新时间:2023-12-03 17:00:38 25 4
gpt4 key购买 nike

我想在 Linux (GTK) 和 OSX 上绘制透明窗口(带有 alpha channel )。有 API 可以做到这一点吗?请注意,我不想设置全局透明度,应按像素设置 Alpha 级别。

我正在寻找与 Windows 上的 UpdateLayeredWindow 函数相同类型的 API,如本例所示:Per Pixel Alpha Blend .

最佳答案

对于 Mac OS X,请参阅 RoundTransparentWindow示例代码。它的工作原理是使用自定义的完全透明的窗口并在其中绘制形状。尽管该示例仅使用具有硬边缘 + 整体 Alpha 的形状,但可以使用任意 Alpha。

虽然该示例使用自定义窗口,但您可以通过调用 setOpaque:NO 使用相同的技术在普通窗口中打洞。黑客示例:

@implementation ClearView

- (void)drawRect:(NSRect)rect
{
if (mask == nil) mask = [[NSImage imageNamed:@"mask"] retain];
[self.window setOpaque:NO];
[mask drawInRect:self.bounds
fromRect:(NSRect){{0, 0},mask.size}
operation:NSCompositeCopy
fraction:1.0];
}

@end

此技术的主要限制是标准投影与 Alpha 混合边缘的交互效果不佳。

关于cocoa - 是否有 API 可以在 GTK 和 OSX 上进行每像素 Alpha 混合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1170716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com