第一张图片为背景图片 bmp 格式
第二章图片为人物图片 bmp 格式 人物以外的透明部分以颜色 $FF00FF 表示
图片尺寸都为400*400希望进行图片叠加,要求速度快的方式。不能用像素处理的方式。我记得以前用TransparentBlt函数做过,是可以的。
可刚才编码,大约是以下样子
TransparentBlt(ADC, 0,0,400,400,objCv1.handle,0,0,400,400,$FF00FF);
TransparentBlt(ADC, 0,0,400,400,objCv2.handle,0,0,400,400,$FF00FF);
第一句是绘背景图
第二句是在同一区域绘用$FF00FF颜色表示的前景图可结果是:
只用第一句 能正确绘制背景图
只用第二句 能正确绘制前景(人物)图 有透明效果
两句一起用,发现和单用第二句的效果是一样的。背景图看不见了,同时前景图透明部分为窗口下面其他程序的窗口,并且鼠标点进去能点到被透明显示出来的其他程序界面。奇怪了跪求高手解决方法 由于是要做一动画效果要循环显示每一帧图片,
所以透明叠加的方式必须速度很快,像素处理方式的不要。
谁能帮我写个有效代码 谢谢了。
第二章图片为人物图片 bmp 格式 人物以外的透明部分以颜色 $FF00FF 表示
图片尺寸都为400*400希望进行图片叠加,要求速度快的方式。不能用像素处理的方式。我记得以前用TransparentBlt函数做过,是可以的。
可刚才编码,大约是以下样子
TransparentBlt(ADC, 0,0,400,400,objCv1.handle,0,0,400,400,$FF00FF);
TransparentBlt(ADC, 0,0,400,400,objCv2.handle,0,0,400,400,$FF00FF);
第一句是绘背景图
第二句是在同一区域绘用$FF00FF颜色表示的前景图可结果是:
只用第一句 能正确绘制背景图
只用第二句 能正确绘制前景(人物)图 有透明效果
两句一起用,发现和单用第二句的效果是一样的。背景图看不见了,同时前景图透明部分为窗口下面其他程序的窗口,并且鼠标点进去能点到被透明显示出来的其他程序界面。奇怪了跪求高手解决方法 由于是要做一动画效果要循环显示每一帧图片,
所以透明叠加的方式必须速度很快,像素处理方式的不要。
谁能帮我写个有效代码 谢谢了。
试试这个
这是如何画?
TransparentBlt(objCv1.handle, 0,0,400,400,objCv2.handle,0,0,400,400,$FF00FF);
然后将objCv1.handle BitBlt到屏幕