如何将内存中的ARGB图像数据贴到窗口中(Windows平台编程)?

sanyechonggyq 2008-10-06 04:20:01
因为没有在Windows平台上进行过编程,希望大家多多指教。我的问题具体如下:

我首先构建了一个内存块,用来存放ARBG的图形。用4个Byte表示一个像素,也就是所谓的32位图像表示法。然后我通过计算把数学方法表示的矢量图形光栅化到了这内存区域块中。我不知道如何把这个内存区域块显示到Windows的窗口中,我尝试了一些方法,由于缺乏Windows平台编程经验,还望大家不吝赐教。最好能给一个例子程序,或者一个完整的VC++6.0的工程。

小弟在这里谢谢大家了。o(∩_∩)o...
...全文
113 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2008-10-07
  • 打赏
  • 举报
回复
SetDIBitsToDevice,填充一下位图结构,给内存数据指针即可绘制到DC上。如果你对DC和位图结构不清楚,先看看Windows编程的书。
Soyokaze 2008-10-07
  • 打赏
  • 举报
回复
两个方法
1、用CreateDIBitmap函数把你的内存数据变为DDB位图,返回一个位图句柄,然后就可以用Bitblt等位块传送函数进行绘制了。
2、自己来,用循环一个点一个点的来画。使用SetPixel函数。注意因为是带Alpha1 通道的,最终的颜色还要自己己计算,公式如下:
Dst.Red = Src.Red * (SCA/255.0) + Dst.Red * (1.0 - (SCA/255.0))
Dst.Green = Src.Green * (SCA/255.0) + Dst.Green * (1.0 - (SCA/255.0))
Dst.Blue = Src.Blue * (SCA/255.0) + Dst.Blue * (1.0 - (SCA/255.0))
上面的SCA就是Alpha值
sanyechonggyq 2008-10-07
  • 打赏
  • 举报
回复
呵呵,等了一天了,也没有人回答!!比较惨!!

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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