关于图象混合的问题 我用CxImage处理图象,现在打开一个tiff文件,然后再自己读入一个bmp位图,现在就想在显示bmp在tiff上的时候不是简单的画上去,想把它们混合成一个tiff,或者bmp文件,请问怎么解决!望高手给出代码!问题解决了再加分!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (1)新建一个与显示器兼容的位图句并,用::CreateCompatibleBitmap,(好象是这样拼写);(2)将这个句并选到一块内存中,(3)在这快内存中画tiff文件;(4)在这块内存中画bmp文件;(5)将这个句并选出内存;(6)通过句并将DDB转换为tiff. 用AlphaBlend;WINGDI.H中定义为BOOL WINAPI AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);不过好象只能在 Winnt5.0(2000)以后的版本中使用fun(HDC hdc,HBITMAP bmpSour,HBITMAP bmpDest){BLENDFUNCTION bf;bf.BlendOp = AC_SRC_OVER;bf.BlendFlags = 0;bf.SourceConstantAlpha = 128; //(0-255)透明度bf.AlphaFormat = 0;HDC hMemDC = ::CreateCompatibleDC(hdc);HBITMAP hOld = (HBITMAP)SelectObject(hMemDC,bmpDest);Bitblt(hdc,0,0,hMemDC,0,0,宽,高);SelectObject(hMemDC,bmpSour)AlphaBlend(hdc,0,0,宽,高,hMemDC,0,0,宽,高,bf);SelectObject(hMemDC,hOld);DeleteDC(hMemDC);} 加一句,编译时请链接lib MSIMG32.LIB 感谢以上各位的解答,其实我想解决的问题就是用cximage打开一个tiff文件,然后再自己读入一个bmp位图画在tiff上,现在想把他们在一起保存为一个tiff或者bmp不知道怎么解决。 CXImage连源码都提供了,他有一个CXMemFile的类,你可以把在内存位图中AlphaBlend,再通过CXImage保存,连源码都给了,不会搞不定吧 怎样在dialog界面上画另一条线的时候,把先前画的线去除? 什么是C/S结构?请高手帮帮忙 请问如何用多线程,一边从数据库读取大量数据,一边插入listctrl中 在线提问 急!! 非常莫名其妙的问题 高手进 哪里有万年历的代码? 毕业了,又加个裤衩。散分! wmi 获取添加/删除程序中信息 vc里面如何把子符串转成16进制 又来了,这次是关于OnDraw的 屏幕捕获程序.奇怪的现象,谁能解释. 请问怎样才能将对话框的北京设为自己需要的图片,bmp的 再问:如何实现Windows画图程序中工具箱?
(好象是这样拼写);
(2)将这个句并选到一块内存中,
(3)在这快内存中画tiff文件;
(4)在这块内存中画bmp文件;
(5)将这个句并选出内存;
(6)通过句并将DDB转换为tiff.
WINGDI.H中定义为
BOOL WINAPI AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
不过好象只能在 Winnt5.0(2000)以后的版本中使用
fun(HDC hdc,HBITMAP bmpSour,HBITMAP bmpDest){
BLENDFUNCTION bf;
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.SourceConstantAlpha = 128; //(0-255)透明度
bf.AlphaFormat = 0;HDC hMemDC = ::CreateCompatibleDC(hdc);
HBITMAP hOld = (HBITMAP)SelectObject(hMemDC,bmpDest);
Bitblt(hdc,0,0,hMemDC,0,0,宽,高);
SelectObject(hMemDC,bmpSour)
AlphaBlend(hdc,0,0,宽,高,hMemDC,0,0,宽,高,bf);
SelectObject(hMemDC,hOld);
DeleteDC(hMemDC);
}