我正在做一件简单的事情:将存储为字符串的图像文件的数据写入包含该字符串的图像文件中。
std::ofstream f("image.jpeg");
f << image_data; // image_data was created using python and copied over, in hex and turned back into ascii
然而,意想不到的事情发生了:
变成:
我不明白为什么会这样。
当我使用python2.7从原始图片中获取数据并将其写入新文件时,它工作正常。
当我在 ubuntu 中编译并运行我的程序时,图片出来的效果很好。
当我将一个大文本文件(比图像大)写入 .txt 时,文件输出正常。
只有 Windows 上的 jpeg 会失败。我尝试的原始图像是来自 PGP 密钥包的图像,其中一半人的头脑清晰,另一半则混乱。
编译后的程序不会弄乱所有数据,因为就像我上面所说的,显示了一些原始图片。此外,图像大小相同,因此至少保留了 jpeg 格式。
怎么了?我在 Windows 7 上的 Code::Blocks 中使用 ming2 4.7.2。Windows 只是疯了吗?