实现的方法和详细的 *** 作步骤如下:
1、第一步,在采样软件中找到软件快捷方式,然后单击以打开该软件,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,已经进入了取模软件,单击“载入”按钮以添加,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,选择要添加的,单击以选择,然后单击“打开”按钮,如下图所示,进入下一步。
4、然后,完成上述步骤后,单击“参数”按钮以进入参数设置界面,如下图所示,然后进入下一步。
5、随后,完成上述步骤后,根据实际情况进行相关参数的设置,如下图所示,然后进入下一步。
6、接着,完成上述步骤后,单击“参数确认”按钮,如下图所示,然后进入下一步。
7、然后,完成上述步骤后,单击“数据保存”按钮,如下图所示,然后进入下一步。
8、随后,完成上述步骤后,选择文件保存路径,然后单击“保存”按钮,如下图所示,然后进入下一步。
9、最后,完成上述步骤后,可以看到刚刚生成的C文件,只需将代码添加到C语言中即可,如下图所示。这样,问题就解决了。
可以用GDI+的Bitmap类
Bitmap bm("c:\\1bmp");
Color Cr;
bmGetPixel(10, 10, Cr);
BYTE bR = CrGetR();
BYTE bG = CrGetG();
BYTE bB = CrGetB();
bR, bG, bB 就是10,10这个坐标像素的RGB分量
使用GDI+需要包含 gdiplush头文件
连接gdipluslib库
你把位图的路径,付给fileName,用CFileFind类的FindNextFile方法查找该文件夹下的下一个文件(包括第一个),每读一文件,处理一次,最终可以全部处理完毕。
处理文件,也就是获得他的位图信息,或者说是像素值。这就用到DIB类,该类中提供了很多关于位图处理的函数,如获取位图数据的首地址等。不过这个类系统没有提供,不过网上很多地方都有,自己查一下吧
没有什么不同。
读出 BITMAPINFO 结构:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;
以后,
BITMAPINFOHEADER 结构 里就有 biBitCount
biBitCount 等于 16 就是16位,等于24 就是24位,等于32 就是32位。
颜色在哪,要考虑 biCompression 压缩方法,若等于 BI_RGB, bmiColors 就等于 NULL 在 bitmap 数组里 每个WORD 就是 一个像素点 5个 bits 兰,5个 bits 绿,再5个 bits 红,最高位不用。
其它方法自己看资料吧。
CImage m_image;//m_image就是要处理的图像
int bit=m_ImageGetBPP();//获取每点像素的位数(8,24,32等),如果只处理24位图,则bit可直接赋值为24
int width=m_ImageGetWidth();//图像的宽度(单位为像素)
int height=m_ImageGetHeight();//图像的长度(单位为像素)
HBITMAP bitmap = m_ImageDetach();//
CBitmap b_Image=CBitmap::FromHandle(bitmap);//获取CBitmap类的实例
DWORD totalbytes=widthheightbit/8;//要保存像素数据需要的总的字节数,24位图的话,每个像素需要3个字节
byte lpBits=new byte[totalbytes];//字节型数组,每个单位存一个字节的数据
int bytes=b_Image->GetBitmapBits(totalbytes,lpBits);//把像素数据存到数组lpBits里,通过看bytes是否为0可以知道是否成功,为0则没有成功
//接下来遍历数组即可获取像素数据,因为24位图是3个字节构成一个像素,所以遍历时要注意间隔。
CBitmap bitmap; //定义位图
bitmapLoadBitmap(IDB_BITMAP1);
CDC dc; //定义设备上下文
dcCreateCompatibleDC(pDC);
dcSelectObject(&bitmap);
BITMAP bt;
bitmapGetBitmap(&bt);
//显示位图;
pDC->BitBlt(1,1,btbmWidth,btbmHeight,&dc,0,0,SRCCOPY);
//扩大位图;
pDC->StretchBlt(btbmWidth+10,0,btbmWidth15,btbmHeight15,
&dc,0,0,btbmWidth,btbmHeight,SRCCOPY);
以上就是关于用C++如何读取图片全部的内容,包括:用C++如何读取图片、C++中如何打开bmp文件并且读取位图的像素信息、怎么获取位图信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)