图像数据常常超过几百兆,在vc下,怎样才能实现部分显示、全局显示?关键是只读一块图像进内参,不知道用什么函数,请高手指点我,谢谢

解决方案 »

  1.   

    读头BITMAPINFOHEADER
    然后可以定位fseek读片断
      

  2.   

    首先假定你对BMP文件格式非常熟悉!
    1、读出BITMAPINFOHEADER AND PALETTE(如果有的话);
    2、修改BITMAPINFOHEADER 中的位图宽、高信息;
    3、分配你的内存:大小为位图点阵大小 + BITMAPINFOHEADER 大小 + PALETTE大小(如果有的话);其实应放在第一步;
    4、计算你想要的位图区域,一行一行地读取到内存中;
    5、以后切换区域时,只需要将位图的点阵信息切换掉就OK了!
      

  3.   

    首先感谢大家的回复
     vcPlayer说的
    (分配你的内存:大小为位图点阵大小 + BITMAPINFOHEADER 大小 + PALETTE大小(如果有的话);其实应放在第一步;)我觉得是一个好主意但是我最大的问题就是如何将将我想要的区域读进这个分配的内参。因为不可能一行一行的读,我只需要二维的一小块,view区域的行像素只是整个图像行像素的一部分。
      

  4.   

    读头BITMAPINFOHEADER
    然后可以定位fseek读片断同意