二进制打开图片文件,再还原成图片怎么实现

xiaoguailong3 2010-12-06 01:15:32
二进制打开图片文件,再还原成图片怎么实现?有没相关的代码?最好是打开得到的二进制写到一个txt里,能看出是二进制的0和1。。再把这些01还原成图片
...全文
488 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzw820626 2010-12-06
  • 打赏
  • 举报
回复
CFile cf;
cf.Open(_T("pic1\\1.bmp"),CFile::modeRead|CFile::typeBinary);
m_nLen = cf.Read(m_buf,1024*100);
CString strTemp = _T("");
for (UINT i = 0;i < m_nLen; i++)
{

for(int j = 0; j < 8; j++)
{
if( (m_buf[i]<<j) < 0)
{
strTmp += "1";
}
else
{
strTmp += "0";
}
}

}

差不多是这样吧,没验证过
m_tornado 2010-12-06
  • 打赏
  • 举报
回复
我知道的是移位转换~
不知道有什么快捷方法了~
xiaoguailong3 2010-12-06
  • 打赏
  • 举报
回复
能说得详细点么?看我的代码:
CFile cf;
cf.Open(_T("pic1\\1.bmp"),CFile::modeRead|CFile::typeBinary);
m_nLen = cf.Read(m_buf,1024*100);
CString strTemp = _T("");
for (UINT i = 0;i < m_nLen; i++)
{
CString strBit;
strBit.Format(_T("%d"),m_buf[i]);
strTemp += strBit;
}
m_buf这个是BYTE类型的。怎么转换成“1010101011”这样的字符串
[Quote=引用 6 楼 m_tornado 的回复:]
用“二进制读”的方式,把每个位都读出来
--------------------------------------------------------------
很强大
[/Quote]
m_tornado 2010-12-06
  • 打赏
  • 举报
回复
用“二进制读”的方式,把每个都读出来
--------------------------------------------------------------
很强大
xiaoguailong3 2010-12-06
  • 打赏
  • 举报
回复
这个我想过,但是老是弄不好。。能写个简单例子吗?留个QQ吧,这样交流太慢了,我QQ27255946
[Quote=引用 4 楼 free1985 的回复:]
用“二进制读”的方式,把每个位都读出来,然后把每一位转成CHAR,写到文本文件就行了。写回去的时候,从文本文件里读,每8个CHAR即八个位组合成一个BYTE,写回去就行了呗。
[/Quote]
李明子 2010-12-06
  • 打赏
  • 举报
回复
用“二进制读”的方式,把每个位都读出来,然后把每一位转成CHAR,写到文本文件就行了。写回去的时候,从文本文件里读,每8个CHAR即八个位组合成一个BYTE,写回去就行了呗。
xiaoguailong3 2010-12-06
  • 打赏
  • 举报
回复
没人在吗??
xiaoguailong3 2010-12-06
  • 打赏
  • 举报
回复
??
[Quote=引用 1 楼 hastings 的回复:]
使用vector的bool特化版本?
[/Quote]
hastings 2010-12-06
  • 打赏
  • 举报
回复
使用vector的bool特化版本?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧