据说bmp文件是倒着存放的,就是第一行位于文件的最末尾一行。那如果把内存中的图像保存成文件,是否在写文件时也要考虑这个问题?
但是我从网上找到的一些vc实例似乎都没有考虑这一点?仅仅是CFile f;
f.write(...)?请问各位,这样写文件那存储形式不就成了顺序存放了?保存文件的第一行
真得成了bmp像素的第一行了?这样对吗?不好意思,没分可以送了~

解决方案 »

  1.   

    假设读到的图像为image[M][N],那么image[0][0:N]实际上是图像的最下面一行。如果图像是一个人,那么这行应该是人的脚。可以写个程序试一下。
    for (int i=0; i<M; i++){    
        fwrite((void*)(&image[i][0], N, sizeof(image[i][0]), fp); //正写
        fwrite((void*)(&image[M-1i][0], N, sizeof(image[i][0]), fp);//倒写
    }
      

  2.   

    倒着存放->顺序存储为文件(其实是按倒着的序列顺序存进去)->顺序取出(取出的第一个字节也还是在下面)这样算起来的话,实际上顺序还是没问题的