cimage类bmp转换成灰度图像

cimage类bmp转换成灰度图像

ID:34428906

大小:29.66 KB

页数:3页

时间:2019-03-06

cimage类bmp转换成灰度图像_第1页
cimage类bmp转换成灰度图像_第2页
cimage类bmp转换成灰度图像_第3页
资源描述:

《cimage类bmp转换成灰度图像》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、CImage类BMP转换成灰度图像,使用时请添加atlimage.h头文件分两种情况,一种就是有调色板的,一种是没有调色板的如果是有调色板的,最方便的方法,是重新构造一个位图,然后重构新的调色板,然后将源位图像素按公式进行运算并将三个字节变成一个字节,我将代码先写在下面:CClientDCdc(this);CImageImage1,Image2;//Image1用来储存源文件,Image2是新建的位图BYTE*buf,*buf2;CStringstr=_T("1.bmp");Image1.Load(str);

2、//将位图载入内存中RGBQUADColorTab[256];Image2.Create(Image1.GetWidth(),Image1.GetHeight(),8,0);//创建一个新的位图,大小是源位图的大小,颜色深度为8位(256阶灰色)Image2.SetColorTable(0,256,ColorTab);for(inti=0;i<256;i++){ColorTab[i].rgbBlue=ColorTab[i].rgbGreen=ColorTab[i].rgbRed=i;}//构造256阶灰度调色

3、表for(inty=0;y

4、样的就真的是灰度位图了Image2.Draw(dc,0,0,Image1.GetWidth(),Image1.GetHeight(),0,0,Image1.GetWidth(),Image1.GetHeight());如果有调色板,色调要变成黑白的,然后重新排个序列,相应的像素值按强度的变化进行修改,将代码写在下面CClientDCdc(this);CImageImage1,Image2;BYTE*buf,*buf2;intgray[256];CStringstr=_T("1.bmp");Image1.Loa

5、d(str);Image1.Draw(dc,0,0,400,300,0,0,400,300);RGBQUADColorTab[256];Image2.Create(Image1.GetWidth(),Image1.GetHeight(),8,0);Image1.GetColorTable(0,1<

6、)(0.11*ColorTab[i].rgbBlue+0.59*ColorTab[i].rgbGreen+0.30*ColorTab[i].rgbRed);}for(inty=0;y

7、;}}//这里有个错误,我还没有想通为什么,显示的是数组越界了,欢迎各位高手指正,嘿嘿Image2.Draw(dc,0,0,Image1.GetWidth(),Image1.GetHeight(),0,0,Image1.GetWidth(),Image1.GetHeight());把atlimage.h的函数列在下面,供参考(1)连接与创建Attach将一个DIB(或DDB)位图与CImage对象相连接Detach位图与CImage对象相分离Create创建一个DIB位图并将它与已有CImag

8、e对象相连接Destroy位图与Cimage对象相分离并删除(2)输入与输出GetImporterFilterString返回系统支持的输入文件格式类型及其描述GetExporterFilterString返回系统支持的输出文件格式类型及其描述Load读入指定图像文件中的图像LoadFromResource读入指定资源文件中的图像Save按指定类型保存图像,文件名中不能省

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。