小弟初学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任意一种都可以
    谢谢

解决方案 »

  1.   

    就说bmp吧 你自己好好看bmp文件的内部格式就会懂得每个像素的rgb值在哪存着,网上都有现成的代码,或者找本书数字图像处理看看  一般书的前面部分都有介绍
      

  2.   

    调用IPicture 接口,生成位元文件,然后用DC来访问位元设备场景
      

  3.   

    windows api 函数  GetPixel
    函数功能:该函数检索指定坐标点的像素的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。
      

  4.   

    用GetPixel ,两层循环就可以了
      

  5.   

    GetPixel速度太慢了!!!!!!!有更好的办法吗?