您的位置:程序门 -> vc/mfc -> 图形处理/算法



硬盘上的bmp格式图像象素的读取


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


硬盘上的bmp格式图像象素的读取
发表于:2007-06-23 15:55:43 楼主
请教各位高人先辈
本人开始接触图像处理知识,刚刚入门
目前需要从硬盘固定路径读取一副1280*100德bmp格式的图像,并获取各个象素点的象素值,进行选定区域的处理。
请问应该怎样读取并获得象素值,
由于本人是新手入门,期待能有人给出完整的代码。谢谢
ps:经人指点来到csdn,专门申请id发了第一文
发表于:2007-06-23 18:13:461楼 得分:0
.net中的cimage类有各种函数
发表于:2007-06-23 18:40:322楼 得分:0
很久以前写的,参阅一下吧

http://dev.gameres.com/program/visual/other/whatifbmpformat.doc
发表于:2007-06-23 20:40:343楼 得分:0
已经看到,谢谢   正在研究中~受益匪浅
发表于:2007-06-23 20:42:294楼 得分:0
先loadimage,再attach,再getdibits就将像素颜色信息取在了一个数组中了。
cbitmap   *mclsbmp=null;
hbitmap   mhdlbmp;
bitmap   m_bitmap;

mclsbmp=new   cbitmap();
mhdlbmp=(hbitmap)loadimage(null,lpszpathname,image_bitmap,0,0,lr_createdibsection   ¦   lr_loadfromfile);
mclsbmp-> attach(mhdlbmp);
mclsbmp-> getbitmap(&m_bitmap);
mclsbmp-> detach();

uint   *   pdata   =   new   uint[m_bitmap.bmwidth   *   m_bitmap.bmheight];
bitmapinfo   bmpinfo;
bmpinfo.bmiheader.bisize   =   sizeof(bitmapinfoheader);
bmpinfo.bmiheader.biwidth   =   m_bitmap.bmwidth;
bmpinfo.bmiheader.biheight   =   -m_bitmap.bmheight;
bmpinfo.bmiheader.biplanes   =   1;
bmpinfo.bmiheader.bicompression   =   bi_rgb;
bmpinfo.bmiheader.bibitcount   =   32;

hdc   hdc   =   ::getwindowdc(null);

getdibits(hdc,mhdlbmp,0,m_bitmap.bmheight,pdata,&bmpinfo,dib_rgb_colors);

发表于:2007-06-23 22:22:275楼 得分:0
标准的bmp位图属于dib,很简单直接createdibsection(),获得指向象素区的指针,然后按照dib的坐标进行读取写入就ok了,速度很快,而且还可以使用汇编优化。
发表于:2007-07-03 11:10:536楼 得分:0
我前一段时间写过,有什么问题可以联系qq56669071,我可以把给你解释


快速检索

最新资讯