gpt4 book ai didi

c++ - ClearType 破坏透明度

转载 作者:行者123 更新时间:2023-11-30 04:04:54 25 4
gpt4 key购买 nike

我有一个位图,其背景需要用另一个位图的一部分替换。在我的 WindowsXP 上启用 ClearFont 之前一切正常。

为了更好地解释我的问题,让我们将第一个位图标记为 bmpDestination,将第二个位图标记为 bmpSource

这是 bmpSource 的样子:

enter image description here

这是 bmpDestination 的样子:

enter image description here

ClearType 关闭时,正确结果如下所示:

enter image description here

下面是当 ClearType 打开时它们组合的错误结果:

enter image description here

ClearType 改变了文本背景颜色的某些部分,因此它们不再是白色 (RGB( 255, 255, 255 ) ),而是白色和文字颜色。

我正在使用 BitBlt() 和单色位图来创建 mask 并模拟透明度。我也尝试过使用 TransparentBlt(),但得到了相同的结果。

当启用 ClearType 时,如何组合 bmpSourcebmpDestination,以便我可以像上面那样创建正确的结果?

感谢您的帮助。

最好的问候。

最佳答案

在白色背景上渲染带有黑色文本的 TreeView 。使用具有灰度抗锯齿功能的字体。不要使用 ClearType 抗锯齿。我相当确定您可以使用 CreateFontfdwQuality 参数之一实现此目的,但我不敢发誓。

每个像素都有介于白色和黑色之间的灰色阴影。您可以将其解释为透明度。白色是完全透明的;黑色是完全不透明的。使用此信息创建具有透明度的位图。在您的多色背景上渲染此透明位图。

关于c++ - ClearType 破坏透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23587787/

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