小弟初学VC,只有点C语言的基础,了解一点绘图方面的知识。一张图片有多个像素,每个像素的颜色都由R、G、B三个值来确定,我想编写一个程序,逐点读出图片中每个像素的RGB值到内存中,我应该用哪个库,调用哪个函数,大致用法,请用过的高手指点。
比如24位真彩色图片大小为1024*768,每个像素三个值,每个值的范围是0~255,或者说是0x00~0xff(如:红色为255,0,0,绿色为0,255,0,白色为255,255,255),那么就能从这张图中读出1024*768*3个值,我要的就是这些数值。
bmp或jpg任意一种都可以
谢谢
比如24位真彩色图片大小为1024*768,每个像素三个值,每个值的范围是0~255,或者说是0x00~0xff(如:红色为255,0,0,绿色为0,255,0,白色为255,255,255),那么就能从这张图中读出1024*768*3个值,我要的就是这些数值。
bmp或jpg任意一种都可以
谢谢
函数功能:该函数检索指定坐标点的像素的RGB颜色值。
函数原型:;COLORREF GetPixel(HDC hdc, int nXPos, int nYPos)
参数:
hdc:设备环境句柄。
nXPos:指定要检查的像素点的逻辑X轴坐标。
nYPos:指定要检查的像素点的逻辑Y轴坐标。
返回值:返回值是该象像点的RGB值。如果指定的像素点在当前剪辑区之外;那么返回值是CLR_INVALID。
备注:该像素点必须在当前剪辑区的边界之内。并不是所有设备都支持GetPixel函数。应用程序应调用GetDeviceCaps函数来确定指定的设备是否支持该函数。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。