VC++ 判断内存中的图像数据

高手,请给我写段代码吧(VC++win32),要求:1.读取一张名为“photo.bmp”的位图(800×600,黑白的)到内存,但不要显示出来;2.依次判断每一个点的颜... 高手,请给我写段代码吧(VC++ win32),要求:

1.读取一张名为“photo.bmp”的位图(800×600,黑白的)到内存,但不要显示出来;

2.依次判断每一个点的颜色(黑还是白),赋值给point[800][600]的数组。

我过去用过Getpixel(),这个函数要显示出图像后才能判断像素,而且速度很慢,判断800×600个像素程序总是没响应(windows任务管理器中可以看到)。
于是我想,在内存中判断应该会快点。

会的大侠帮帮忙啊!

我已经问了相似的问题好几个月了,就是没人回答……如果代码能用,我追加100分!
展开
 我来答
hglg1979
2009-01-01 · TA获得超过1074个赞
知道小有建树答主
回答量:1274
采纳率:0%
帮助的人:690万
展开全部
建议直接对bmp文件读取分析,具体看msdn吧

bmp文件格式:包含以下4个部分

BITMAPFILEHEADER 文件头
BITMAPINFOHEADER 图像信息
RGBQUAD 调色板,比如256色位图就是256个RGBQUAD
COLOR-index 具体像素,比如256色位图就是上面调色板的索引

typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;

typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER, *PBITMAPINFOHEADER;

typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD;

我qq 1454247
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式