1

Base64 でエンコードされた文字列から .png 画像ファイルを書き込む必要があるアプリに取り組んでいます。これを行うために、次のコードがあります。

byte[] tempBytes = Convert.FromBase64String(base64EncodedString);
using (MemoryStream memoryStream = new MemoryStream(tempBytes))
{
  System.Drawing.Image image = System.Drawing.Image.FromStream(memoryStream);
  image.Save("C:\\inetpub\\wwwroot\\MySite\\test.png");
}

このコードを実行すると、次のエラーが表示されます。

System.ArgumentException Parameter is not valid.    

スタック トレースの関連部分は次のようになります。

at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)

私の理解では、これは base64encodedString が有効な画像ではないことを意味します。しかし、原因が何であるかを特定する方法はわかりません。上記のコードはサーバー上で実行されます。私も書いたクライアントアプリからエンコードされた文字列を渡しています。クライアント側とサーバー側でエンコードされた文字列を出力して、それらが一致することを確認しました。2 つの一致を考慮すると、文字列を適切にエンコードしていないことがわかります。どうすれば原因をたどることができますか。

ありがとうございました

4

1 に答える 1

0

おそらく最初に画像をシリアル化する必要があります。(その後、デコード時にデシリアライズ)

于 2012-08-17T13:23:22.710 に答える