很多图象处理的程序都是用视图文档类,
先打开一幅位图,再得到它的指针接着就可以处理了
我想用基于对话框的也一定能做吧
现在有一个问题
我用CBitmap的LoadBitmap加载了一幅资源位图24色
我想再用GetBitmapBits(DWORD dwCount,LPVOID lpBits)
得到这副图象的指针然后灰度化 结果却不对倒没有编译错误
这个lpBits指向的缓冲区包不包含bitmapinfo?
还是直接就是位图像素?
正确应该怎么写啊
新手
多指教
鞠躬!!!!!
先打开一幅位图,再得到它的指针接着就可以处理了
我想用基于对话框的也一定能做吧
现在有一个问题
我用CBitmap的LoadBitmap加载了一幅资源位图24色
我想再用GetBitmapBits(DWORD dwCount,LPVOID lpBits)
得到这副图象的指针然后灰度化 结果却不对倒没有编译错误
这个lpBits指向的缓冲区包不包含bitmapinfo?
还是直接就是位图像素?
正确应该怎么写啊
新手
多指教
鞠躬!!!!!
解决方案 »
- 装了多遍VS2005,除了对话框控件,VC下的好多控件还是灰色的,不能用,救命呀
- 非正常关闭主窗口如何得到其他未关闭窗口的句柄(大家路过进来指点一二啊:))
- VC高手帮忙,十万火急!!VC自动化Excel时,如何从SAFEARRAY中取出值?高分求援
- 求随书光盘!
- ЖЖ请教高手一个较难的算法,是ld读研究生是老师布置的一个算法的左右,想了2天想不出来该怎么做,求助了!ЖЖ
- 为什么我按拉退出键,程序还在运行呢?(急! 急! 急! 急! 急! )
- 请教一个关于计时器的问题
- 急问如何向oracle插入大量记录
- 关于OPENGL纹理贴图的难点问题?
- 怎样实现用Browse for Folder遍历目录查找指定文件?????
- 设备无关位图DIB的问题,为什么biSizeImage!=biWidth*biHeight*3
- 在DLL里面怎么做定时器啊?
你先用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 FFFF
精彩啊
不过后半截没看明白 汗颜!
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)也应该是像素了马上调试去!谢拉
明天见