问一个很弱的问题,我想保存图片(jpg/bmp/png)数据到一个缓冲区,这个缓冲区该怎么定义呢?CFile类有一个Read函数,里面的接收缓冲区被定义为void* lpBuf,那如果我想保存上面多种格式的图片数据,我的接收缓冲区是定义为:BYTE data[MAXCOUNT];还是char data[MAXCOUNT];呢?另外,Read函数接收的最大字节数为UINT类型,那么这里的该定义为多大呢?

解决方案 »

  1.   

    BYTE data[MAXCOUNT];还是char data[MAXCOUNT];呢?
    都可以
      

  2.   

    这要看你数据的位数了,如果是8位,char、short就行了,如果是16位,那就用int
      

  3.   

    为什么BYTE和CHAR都可以呢?不会有强制类型转换吗,会不会导致数据丢失或损坏?图片一般定义多大的接收缓冲区呢,这个MAXCOUNT定义为多大合适呢?
      

  4.   

    这里BYTE和CHAR都是单个字节的无符号数,所以不会有类型转换问题,不过用CHAR不太好,因为有些编译器定义的CHAR是有符号的(VC不是这样),所以用BYTE比较好。图片的话,看你怎么保存了,如果你是的是一个24位(3个8位数)表示一个像素的话,就用图片预计最大尺寸乘以3呗。
      

  5.   

    这个和多少位有关吗?我这里就是要定义一个最大的缓冲区,什么叫MAXCOUNT ?可能读取的是24位的位图,可能是PNG,可能是JPG...