VC++图像处理中对BItmap文件结构的读取

如题,我想对一张BMP位图进行处理,算法我大致知道,但不知道相关函数。我知道Bitmap包括BitmapFileHeader,BitmapInfoHeader,调色板,像... 如题,我想对一张BMP位图进行处理,算法我大致知道,但不知道相关函数。我知道Bitmap包括BitmapFileHeader,BitmapInfoHeader,调色板,像素索引值表这四个部分,我有两个方面的问题:1、怎样得到这四部份的具体数据,如(22,32)这个点的RGB值。我先建立CBitmap 对象bmp,再bmp.LoadBitmap(我的图片)。然后怎么搞呢?CBitmap没有封装相关函数啊?MFC中BITMAP结构体也没有后面3部分啊????2、怎样从内存创建一张位图文件并显示???不需要保存到磁盘。就是说,我自己凭想象创建BitmapFileHeader,BitmapInfoHeader这两个结构体,调色板用二维数组,像素索引值表用一维数组,用具体数据填充这四部份。怎样用这四部份组建一个Bitmap文件,并获取他的句柄HBitmap????? 展开
 我来答
八子杰4
推荐于2018-04-18 · TA获得超过4.5万个赞
知道大有可为答主
回答量:6763
采纳率:90%
帮助的人:970万
展开全部

如果位图已经通过LoadBitmap加载到内存,则内存中的图像与显示设备紧密相关,比如原图是彩色图片,显示器是黑白色,通过bmp.LoadBitmap(我的图片)后,内存中的图像数据是黑白色的数据,而且还与显示器位数有关。如果需要在原位图数据上进行图像处理,就不要bmp.LoadBitmap来加载位图,而是打开文件获取位图数据。如果仅仅是在当前显示设备下进行效果处理,则可以使用bmp.LoadBitmap加载位图,通过CBitmap的GetBitmapBit函数可以获取位图数据,如果是24位显示器,则每3个字节表示一个像素,其中第一个字节是B,第二个字节是G,第3个字节是R;如果是32位的显示器,每4个字节表示一个像素,一般前3个字节与24位显示器一样,第4个字节一般没有什么意义。

Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制界面。

它以拥有“语法高亮”,IntelliSense(自动完成功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结花费的时间,在大型软件计划上尤其显著。

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
shaoqi08110820
2012-08-06 · TA获得超过2508个赞
知道大有可为答主
回答量:1514
采纳率:100%
帮助的人:1730万
展开全部
你这些问题,我最近也是再做,不过我是读取tif,tiff。。。等等,也可以读取BMP图像文件,你在百度搜一下opencv ,下载一个opencv软件,加载到VS2008,就可以用了,里面很多函数已经封装好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
归悦欣cf
2012-08-06 · TA获得超过1443个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1317万
展开全部
1.如果位图已经通过LoadBitmap加载到内存,则内存中的图像与显示设备紧密相关,比如原图是彩色图片,显示器是黑白色,通过bmp.LoadBitmap(我的图片)后,内存中的图像数据是黑白色的数据,而且还与显示器位数有关。如果需要在原位图数据上进行图像处理,就不要bmp.LoadBitmap来加载位图,而是打开文件获取位图数据。如果仅仅是在当前显示设备下进行效果处理,则可以使用bmp.LoadBitmap加载位图,通过CBitmap的GetBitmapBit函数可以获取位图数据,如果是24位显示器,则每3个字节表示一个像素,其中第一个字节是B,第二个字节是G,第3个字节是R;如果是32位的显示器,每4个字节表示一个像素,一般前3个字节与24位显示器一样,第4个字节一般没有什么意义。
2.关于第二个问题,在网上有很多资料,可以搜一下。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-08-05
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luomantiker
2012-08-06 · TA获得超过148个赞
知道答主
回答量:53
采纳率:0%
帮助的人:19.8万
展开全部
推荐你看CXIMAGE,做开发并不一定要自己把所有东东都做好,公用的东东好用、安全、功能强大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式