目前共有3篇帖子。
字體大小:較小 - 100% (默認)  內容轉換:不轉換
 
點擊 回復
1197 2
【用法】AlphaBlend半透明函数的用法
巨大八爪鱼
武林盟主 二十一級
回復
1樓 發表於:2016-7-7 23:12

BLENDFUNCTION bdf;
ZeroMemory(&bdf, sizeof(bdf));
bdf.SourceConstantAlpha = 150; // 指定不透明度(0为完全透明, 255为完全不透明)
SelectObject(hdcMem, hbmp); // 选入要复制的位图
AlphaBlend(hdc, 50, 50, bmp.bmWidth / 2, bmp.bmHeight / 2, hdcMem, 0, 0, bmp.bmWidth, bmp.bmHeight, bdf);


运行效果:

巨大八爪鱼
武林盟主 二十一級
回復
2樓 發表於:2016-7-7 23:17

各参数的解释:
AlphaBlend(目标设备DC, 显示位置x坐标, 显示位置y坐标, 显示宽度, 显示高度, 含有图像的DC, 开始截取位置x坐标, 开始截取位置y坐标, 截取宽度, 截取高度, 半透明属性);

合理调整显示宽度和高度可以缩放图像,例如bmp.bmWidth / 2, bmp.bmHeight / 2就是缩小为原尺寸的50%。

函数执行时先进行原图像剪切,未剪切的部分不会显示出来。

巨大八爪鱼
武林盟主 二十一級
回復
3樓 發表於:2016-7-7 23:18
如果bdf.SourceConstantAlpha为255的话,此函数就相当于StretchBlt。
回覆帖子
內容:
用戶名: 您目前是匿名發表。
驗證碼:
看不清?換一張
(快捷鍵:Ctrl+Enter)
本帖信息
點擊數:1197 回複數:2
作者:巨大八爪鱼
最後回覆:巨大八爪鱼
最後回復時間:2016-7-7 23:18
本吧精品帖子
公告板