内部に画像を含む div があります。JavaScript では、div を取得し、div の innerHTML をサーバーに送信しています。JavaScript は以下のように簡略化されています。
function uploadImage() {
var imageInfo = document.getElementById('divImage').innerHTML;
PageMethods.uploadImage(imageInfo, onSuccess, onError);
} //end function
現在、サーバーでこれを文字列として受信しています。
[WebMethod]
public static string uploadImage(string base64FileString){...}
結果は次のとおりです。
<img height="150" width="150" title="name.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA...../>
この画像をディスクに保存する必要がありますが、途方に暮れています。「base64」を超えてすべてを(分割を使用して)取得し、次を使用してイメージを作成できることを理解しています。
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64FileString);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
image.Save(.....);
しかし、これは非常に効率が悪いようです。文字列から画像を作成するより良い方法、文字列を受け取るより良い方法、または文字列を渡すより良い方法はありますか?