3

文字列として保存されている画像ファイルのデータを、その文字列を含む画像ファイルに書き込みます。

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 を使用しています。

4

1 に答える 1