gpt4 book ai didi

c++ - 使用 PlayEnhMetaFile 绘制带有 alpha channel 的增强图元文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:49 24 4
gpt4 key购买 nike

我正在尝试仅使用 GDI 函数将包含透明区域的增强图元文件转换为 32 位位图。这可能获得正确的 alpha 值吗?

以下内容生成一个 32 位位图,每个像素的 alpha 值设置为 0:

首先,我使用 CreateCompatibleDC(NULL) 创建一个内存 DC,并使用 GetDC 检索的屏幕 DC 创建一个 HBITMAPCreateCompatibleBitmap (空)。 (后者生成 32 位位图的句柄。)

然后我使用 SelectObject 选择创建的位图到内存 DC。

最后,我使用 PlayEnhMetaFile 将包含透明区域的增强图元文件绘制到内存 DC 中。

最佳答案

我没有使用 PlayEnhMetaFile 的经验,但您可以使用 AlphaBlend 绘制带有 alpha channel 的内存 DC

inline BOOL AlphaBlt(HDC hDC, int x, int y, int cx, int cy, HDC hSrcDC, int xSrc, int ySrc, int cxSrc, int cySrc)
{
static BLENDFUNCTION bf = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA};
return AlphaBlend(hDC, x, y, cx, cy, hSrcDC, xSrc, ySrc, cxSrc, cySrc, bf);
}

希望对您有所帮助。

关于c++ - 使用 PlayEnhMetaFile 绘制带有 alpha channel 的增强图元文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9467290/

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