cal*_*pto 3 c++ image ofstream windows-7
我做了一件简单的事情:将存储为字符串的图像文件的数据写入包含该字符串的图像文件中.
std::ofstream f("image.jpeg");
f << image_data; // image_data was created using python and copied over, in hex and turned back into ascii
Run Code Online (Sandbox Code Playgroud)
然而,出乎意料的是:

变为:

我不明白为什么会这样.
当我使用python2.7从原始图片中获取数据并将其写入新文件时,它工作正常.
当我在ubuntu中编译并运行我的程序时,图片很好.
当我将一个大文本文件(大于图像)写入.txt时,该文件很好.
只有Windows上的jpegs失败了.我尝试的原始图像是来自PGP密钥包的图像,其中一半的人头部清晰,另一半混乱.
编译后的程序并没有弄乱所有数据,因为正如我上面所说,显示了一些原始图片.此外,图像大小相同,因此至少保留了jpeg格式.
怎么了?我在Windows 7的Code :: Blocks中使用ming2 4.7.2.Windows刚刚疯了吗?
您必须以二进制模式打开文件:
std::ofstream f("image.jpeg", std::ios::out | std::ios::binary);
// ^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1474 次 |
| 最近记录: |