gpt4 book ai didi

winapi - 具有 alpha 值的 VC++ COLORREF

转载 作者:行者123 更新时间:2023-12-05 03:11:52 26 4
gpt4 key购买 nike

只要我理解 VC++ 中定义的 COLORREF 是一个 DWORD,它看起来像这样 0x00bbggrr 其中 bb, gg rr 是用于红色、绿色和蓝色的字节。微软的文档指出

The high-order byte must be zero.

但是在 .NET 中,它用于存储颜色的 alpha 值。我的问题是:

将我的 alpha 值存储在 COLORREF 的高字节中是否危险

最佳答案

However in .NET it is used for storing alpha value of the color

事实并非如此。 COLORREF 是 GDI 的类型定义,它是图形的旧版 API,可追溯到 Windows 3.0 版。严格来说是一个 24bpp 的 api,不知道关于 alpha 的 bean,当时还没有硬件。调色板很流行,它们对 alpha 没有用。非常不愉快的编程顺便说一句,我在 RealizePalette() 上掉了不少头发。

.NET 使用 GDI+。首先在 gdiplus.h SDK header 中作为 C++ api 公开,并在 Win3 后约 8 年发布。 catch 不断发展的硬件,它支持 32bpp 和 alpha channel 。它对颜色值使用了非常不同的定义,Color type .它与 COLORREF 不兼容的不仅仅是添加的 alpha channel ,它还以完全相反的方式存储颜色。格式为 0xaarrggbb。可能是故意的,当代码不小心错误地使用了 COLORREF 时,可以很容易地看到 :)

不确定您在哪里看到使用了 COLORREF,Reference Source没有匹配项。我很好奇,请使用链接更新您的问题。

关于winapi - 具有 alpha 值的 VC++ COLORREF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35955779/

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