我想把一副图象的象素值显示到一个文本文件里去
比如 unsigned char *lpDIBits指向位图的象素区
CFile file;
CFileException fe;
if (!file.Open("D:\\result.txt", CFile::modeWrite | CFile::shareDenyWrite, &fe))
{
return FALSE;
} file.WriteHuge (lpDIBits,lHeight*LineByte);
//lHeight  为位图的高 单位象素
//LineByte 每行字节数完了就是乱码内存中的数为ASCII码 如97 写到.txt文件中就是a
现在的问题是 仍然想让它显示97
也就是在.txt文件中按行和列显示象素值各位高手 指教啊!!

解决方案 »

  1.   

    Write是否会将a变化97的,可以用UltraEdit查看。
      

  2.   

    完了就是乱码--乱码是因为你不是用二进制格式写入文件的。因为图像中每一个像素并非都是对应可见字符。
    内存中的数为ASCII码 如97 写到.txt文件中就是a
    现在的问题是 仍然想让它显示97
    --这个没有技巧,需要将每个像素字符先转换为对应的ASCII字符。比如用Format("%02X",'a')这样的方式转换为16进制字符串后写入
      

  3.   

    使用二进制就可以了。if (!file.Open("D:\\result.txt", CFile::modeWrite | CFile::shareDenyWrite | CFile::typeBinary, &fe))
    {
      ...
    }