中易网

VC++ HDIB如何声明

答案:2  悬赏:10  
解决时间 2021-03-18 06:01
如题 VC++中 处理图像的 HDIB 句柄如何声明
最佳答案
举个修改已有图像为浮雕效果的例子吧:

void CDibView::OnFDImage() //产生"浮雕"效果图函数
{
 HANDLE data1handle;//用来存放图像数据的句柄;
 LPBITMAPINFOHEADER lpBi;//图像的信息头结构;
 CDibDoc *pDoc=GetDocument();//得到文挡指针;
 HDIB hdib;//用来存放图像数据的句柄;
 unsigned char *pData;//指向原始图像数据的指针;
 unsigned char *data;//指向处理后图像数据的指针;
 hdib=pDoc->m_hDIB;//拷贝存放已经读取的图像文件数据句柄;
 lpBi=(LPBITMAPINFOHEADER)GlobalLock((HGLOBAL)hdib);//获取图像信息头
pData=(unsigned char*)FindDIBBits((LPSTR)lpBi);
//FindDIBBits是我定义的一个函数、根据图像的结构得到位图的灰度值数据、
pDoc->SetModifiedFlag(TRUE);
//设置文档修改标志为"真"、为后续的修改存盘作准备;
data1handle=GlobalAlloc(GMEM_SHARE,WIDTHBYTES(lpBi->biWidth*8)*lpBi->biHeight); //声明一个缓冲区用来暂存处理后的图像数据;
data=(unsigned char*)GlobalLock((HGLOBAL)data1handle);//得到该缓冲区的指针;
AfxGetApp()->BeginWaitCursor();
int i,j,buf;
for( i=lpBi->biHeight; i>=2; i--)//从图像右下角开始对图像的各个像素进行"浮雕"处理;
  for( j=lpBi->biWidth; j>=2; j--)
  {
//浮雕处理
buf=*(pData+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)-*(pData+(lpBi->biHeight-i+1)*WIDTHBYTES(lpBi->biWidth*8)+j-1)+128;
if(buf>255) buf=255;
if(buf<0)buf=0; *(data+(lpBi->biHeight-i)*WIDTHBYTES(lpBi->biWidth*8)+j)=(BYTE)buf;
}
for( j=0; jbiHeight; j++)
for( i=0; ibiWidth; i++)
//重新写回原始图像的数据缓冲区;
*(pData+i*WIDTHBYTES(lpBi->biWidth*8)+j)=*(data+i*WIDTHBYTES(lpBi->biWidth*8)+j);    AfxGetApp()->EndWaitCursor();
pDoc->m_hDIB =hdib//将处理过的图像数据写回pDoc中的图像缓冲区;
GlobalUnlock((HGLOBAL)hdib);//解锁、释放缓冲区;
GlobalUnlock((HGLOBAL)data1handle);
GlobalFree((HGLOBAL)hdib);
GlobalFree((HGLOBAL)data1handle);
Invalidate(TRUE);//显示图像
全部回答
你好! 和其他变量一样声明啊,你所谓的“如何声明”,到底你遇到什么问题了? 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
幼儿园没有固定的床给小朋友休息,是不是正规
衡阳市衡州小学地址在什么地方,我要处理点事
有点口臭接吻时怎么办
聚味楼这个地址在什么地方,我要处理点事
今年的乡镇公务员考什么内容
天津哪里可以买到金星酒?
蒙牛全脂速溶奶粉赠品400克的价格
铁锅饭怎么做
请问LAST SATURDAY是什么意思?谢谢
He prefers to eat the rice______in the Sou
3DMAX2010打不开CAD
插卡式电表能邮局的网银交电费吗?
上海中峻旅行社在哪里啊,我有事要去这个地方
库车到喀纳期多少公里
请帮查一下申通468119051502查不到申通E物流
推荐资讯
从石家庄火车北站至石家庄青园路与愧北路交口
两个数相乘,其中的一个乘数不变,另一个乘数
车管家汽车清洗美容中心怎么去啊,有知道地址
现在在一汽丰田的4S店做一个保养要多少钱
信阳盛浩电子商务有限公司是有营业执照的的合
天天玩着不想上班,但手上又没有钱玩着也觉得
straight bill of lading是什么?与bill of l
汉中宁强到安康宁陕不走高速有多少公里
知道一个人的身份证和手机号可以做什么
とてもあなたといっしょにいることが好きです
祺祥GTX760对比影驰GTX760哪个好?求大神
我和我的女友认识了半年多。前两天,双方父母
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?