CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  图形处理/算法

关于写文件的问题

楼主asdwwe2004(xxx)2005-08-02 10:47:16 在 VC/MFC / 图形处理/算法 提问

我想把一副图象的象素值显示到一个文本文件里去  
  比如   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文件中按行和列显示象素值  
   
  各位高手   指教啊!!  
   
  问题点数:50、回复次数:4Top

1 楼fairyprince(精灵王子)回复于 2005-08-02 12:14:08 得分 0

建个缓冲,将数转成字串就行了  
  没其它办法Top

2 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2005-08-02 13:24:53 得分 0

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

3 楼happyparrot(快乐鹦鹉)回复于 2005-08-02 14:32:15 得分 0

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

4 楼younggle(洋溢)回复于 2005-08-02 14:56:39 得分 0

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

相关问题

  • 写文件,读文件
  • 文件读写!
  • vb写文件
  • 写文件
  • 读写文件??
  • 文件读写
  • 文件写入
  • 写文件
  • flash写文件
  • 如何写文件?

关键词

  • 文件
  • 字符
  • 乱码
  • 象素
  • cfile
  • 显示
  • 问题
  • fe
  • 就是
  • txt

得分解答快速导航

  • 帖主:asdwwe2004

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo