请问如何把一个HICON图标与如何用GDI+的Graphics对象绘制? 我得到了一个HICON句柄,试过用Bitmap类的构造函数Bitmap(HICON hIcon)来创建一个Bitmap对象,然后用Graphics的DrawImage画图,但是图标变成不透明了(烦!),有什么办法可以在Graphics上绘出带透明的图标,谢谢大侠们,我实在找不到办法了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那好像牵涉到像素混合啊,不是你所想的那么简单,你必须先将bitmap要覆盖的那一片土地(rect)取出来保存,然后判断色深,然后混合,在draw出来,这和游戏里的alpha混合Blit很像.伪玛:RGB16bit 565色深pixel_high=pixel&(1111100000011111)b//取高位pixel_mid=pixel&(0000011111100000)b//取中位pixel_low=pixel&(0000000000011111)b//取低位pixel_rect类似pixeled_high=pixel_high*alpha+pixel_rect_high(1-alpha)pixeled_mid=pixel_mid*alpha+pixel_mid_high(1-alpha)pixeled_low=pixel_low*alpha+pixel_low_high(1-alpha)最后将pixeled的土draw上去就可以了alpha是一个参数在1,0之间,设定大小可以改变透明度。还有更优的算法,我记不住了,可以去网上查这个算法我是从书上记下来的,还没用到实际上面去,有错就别怪我了但是要想获得动态透明效果,不混合像素那是一定不行的!! 这个只好这么干了,谢谢你。微软的贱淫,在Gdiplus里弄个DrawIcon函数不就行了吗,看他简介里一个都没介绍!在.Net FrameWork里有DrawIcon这个函数但是偏偏和MFC阴阳相隔,没用。 任何图形图像只有转换成数据流才有效的,icon和位图在最终显示的时候是没有差别的,只是倒入的方法,大小,解压算法(bitmap好像没有)什么的不同,不知我说的对不对,新手,不敢说得太绝对了。 win32 让程序成为默认图片打开器 用socket send数据成功,但是在recv卡住了,是不是我代码有问题? 连接Access数据库运行异常 vc++调用已存报表8.0求助 请教:如何改变CListCtrl中的HeaderCtrl的高度? 一个简单问题?来者给分 about the memory address 上班后的第一个难题。求助!! 程序运行时如何读取程序本身的数据 在线等,窗口句柄 CString.Format怎样控制位数? 非模态对话框如何调用View类中的函数
伪玛:
RGB16bit 565色深
pixel_high=pixel&(1111100000011111)b//取高位
pixel_mid=pixel&(0000011111100000)b//取中位
pixel_low=pixel&(0000000000011111)b//取低位
pixel_rect类似
pixeled_high=pixel_high*alpha+pixel_rect_high(1-alpha)
pixeled_mid=pixel_mid*alpha+pixel_mid_high(1-alpha)
pixeled_low=pixel_low*alpha+pixel_low_high(1-alpha)
最后将pixeled的土draw上去就可以了
alpha是一个参数在1,0之间,设定大小可以改变透明度。
还有更优的算法,我记不住了,可以去网上查
这个算法我是从书上记下来的,还没用到实际上面去,有错就别怪我了
但是要想获得动态透明效果,不混合像素那是一定不行的!!
微软的贱淫,在Gdiplus里弄个DrawIcon函数不就行了吗,看他简介里一个都没介绍!在.Net FrameWork里有DrawIcon这个函数但是偏偏和MFC阴阳相隔,没用。