そのため、画像ファイルを正常に読み取って C# アプリケーションに戻すことはできますが、適切にデコードすることはできません。
PHP経由でJSONデータをそのまま返しています(json_encode関数は表示されていません):
$imgbinary = fread(fopen($filename, "r"), filesize($filename));
if ( strlen($imgbinary) > 0 ){
return array("success"=>true, "map"=>base64_encode($imgbinary));
}
次に、C# で Newtonsoft.Json を使用して文字列をデコードします (成功とマップ プロパティを正常に読み取ることができます) が、base64 デコードを使用して画像をファイルに適切に書き込む (または表示する) ことができません。
私はそのようにやっています:
File.WriteAllText(System.Windows.Forms.Application.StartupPath + "\\MyDir\\" + FileName, Base64Decode(FileData));
public string Base64Decode(string data)
{
byte[] binary = Convert.FromBase64String(data);
return Encoding.Default.GetString(binary);
}
ここでクレイジーでシンプルなものが欠けていますか?本当に奇妙なのは、データをデコードした後、ファイル サイズが元のファイルよりも大きいことです。(一度エンコードすると、データが約 33% 増加することに気付きますが、デコードした後もデータがさらに大きくなるのは奇妙です)。
どんなヘルプ/ポインタも大歓迎です!