CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

一个关于CBitmap的小问题

楼主asdwwe2004(xxx)2004-12-04 19:05:30 在 VC/MFC / 基础类 提问

很多图象处理的程序都是用视图文档类,  
  先打开一幅位图,再得到它的指针接着就可以处理了  
  我想用基于对话框的也一定能做吧  
  现在有一个问题  
  我用CBitmap的LoadBitmap加载了一幅资源位图24色  
  我想再用GetBitmapBits(DWORD   dwCount,LPVOID   lpBits)  
  得到这副图象的指针然后灰度化   结果却不对倒没有编译错误  
  这个lpBits指向的缓冲区包不包含bitmapinfo?  
  还是直接就是位图像素?  
  正确应该怎么写啊  
  新手  
  多指教  
  鞠躬!!!!! 问题点数:50、回复次数:2Top

1 楼EnochShen(小疯子:真的好菜—知耻而后勇!)回复于 2004-12-04 19:12:48 得分 50

呵呵,客气了。  
  你先用CFile把你那个资源位图加载  
  然后偏移sizeof(BITMAPFILEHEADER)+   sizeof(BITMAPINFOHEAD)  
  读到一个char*里面就会得到你图象的位图像素了  
   
  另外:在     24     位格式中,图像中的每个象素都由存储为     BRG     的三字节     RGB     序列表示。每个扫描行都被补足到     4     位。为了使这个过程稍复杂一点,图像是自底而上存储的,即第一个扫描行是图像中的最后一个扫描行。下图显示了标头     (BITMAPHEADER)     和     (BITMAPINFOHEADER)     以及部分图像。各个部分由垂线分隔:          
     
  0000000000     4D42     B536     0002     0000     0000     0036     0000         ¦     0028      
  0000000020     0000     0107     0000     00E0     0000     0001     0018     0000      
  0000000040     0000     B500     0002     0EC4     0000     0EC4     0000     0000      
  0000000060     0000     0000     0000         ¦     FFFF     FFFF     FFFF     FFFF     FFFF      
  0000000100     FFFF     FFFF     FFFF     FFFF     FFFF     FFFF     FFFF     FFFFTop

2 楼asdwwe2004(xxx)回复于 2004-12-04 20:17:33 得分 0

回EnochShen:  
  精彩啊  
  不过后半截没看明白     汗颜!  
  CFile  
  偶看过了  
  基本明白  
  先用CFile::Open(LPCTSTR   lpszFileName,UNIT   nOpenFlag,CFileException   *pError)  
  打开一个文件  
  再用CFile::Read(void   *c   ,UNIT   nCount)读取字节  
  在lpBuf指向的缓冲区偏移sizeof(BITMAPFILEHEADER)+   sizeof(BITMAPINFOHEAD)就是像素  
  是这样吧     没调试  
  不过应用CFile类至少要知道文件名啊  
  可是资源只有ID啊      
   
  我想能不能就用CBitmap类的GetBitmapBits(DWORD   dwCount,LPVOID   lpBits)函数  
   
  lpBits指向的缓冲区偏移sizeof(BITMAPFILEHEADER)+   sizeof(BITMAPINFOHEAD)也应该是像素了  
   
  马上调试去!  
   
  谢拉  
  明天见  
   
   
  Top

相关问题

  • 请教大侠,怎样把一个CBitmap缩小成另外一个CBitmap........
  • 如何获得1个CBitmap对象表示的位图的大小?
  • ×××××CBitmap::GetBitmap(...)的问题×××××××××
  • vc6.0的cbitmap基类
  • 如何生成cbitmap
  • 我要将CBitmap里的图片缩小,请问各位高人应该怎样做
  • CBitmap和CListCtrl的问题.
  • CBitmap对象的copy问题
  • 【CBitmap】如何自画位图
  • 位图(CBitMap)怎样编辑

关键词

  • 图像
  • ffff ffff
  • cbitmap
  • lpbits
  • 偏移
  • cfile
  • bitmapinfohead
  • bitmapfileheader
  • 扫描行
  • 资源

得分解答快速导航

  • 帖主:asdwwe2004
  • EnochShen

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo