关于重叠透明水印到图片的API

gddd 2009-03-07 11:42:59
找到了一段代码,应该是用这种方法实现的.

maskDC = CreateCompatibleDC(0) '1.建立单色mask DC
maskBitmap = CreateBitmap(S_Width, S_Height, 1, 1, 0)
SelectObject maskDC, maskBitmap

SetBkColor foreDC, TransColor '2.把前景图的背景色设为透明色
BitBlt maskDC, 0, 0, S_Width, S_Height, foreDC, 0, 0, SRCCOPY '3.copy前景图到单色DC得到mask

SetBkColor foreDC, RGB(0, 0, 0) '4.把前景图与mask图作与运算
SetTextColor foreDC, RGB(255, 255, 255)
BitBlt foreDC, 0, 0, S_Width, S_Height, maskDC, 0, 0, SRCAND

SetBkColor backDC, RGB(255, 255, 255) '5.把背景图与mask图作与运算
SetTextColor backDC, RGB(0, 0, 0)
BitBlt backDC, 0, 0, S_Width, S_Height, maskDC, 0, 0, SRCAND

'6.把前景图和背景图作或运算
BitBlt backDC, 0, 0, S_Width, S_Height, foreDC, 0, 0, SRCPAINT

BitBlt T_DC, T_X, T_Y, S_Width, S_Height, backDC, 0, 0, SRCCOPY


但还不是非常理解它,希望高手解释一下几者的关系.
像foreDC,搞了半天还是没弄懂到底应该放哪个
Dim picture1 As New StdPicture'原始图片
Dim picture2 As New StdPicture'水印图片
Dim picture3 As New StdPicture'预留
Dim picture4 As New StdPicture'预留

或者谁有做过的,给个参考的过程..
...全文
95 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2009-03-07
  • 打赏
  • 举报
回复
.......顶一下......

BS上面的广告.

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧