2012-10-15 12 views
8

私はbase32でエンコードされた画像をjavacript(私はhttp://supa.sourceforge.net/を使ってasp.netアプリケーション用のScreenshotアップローダーアプレットを作成しています)を使ってクライアント側から送信しており、これはサーバーにajaxリクエストを送信して画像を保存します。サーバーでは、私はasp.netアプリケーションでGenericHanlderでHttpContextを使用しています。Base64をデコードする

イメージデータをHttpContextからサーバーにイメージに変換するにはどうすればよいですか?

答えて

35

まず、あなたが戻ってバイトにベース64を変換する必要があります。

byte[] data = System.Convert.FromBase64String(fromBase64); 

その後、あなたは画像のインスタンスにロードすることができます

MemoryStream ms = new MemoryStream(data); 
Image img = Image.FromStream(ms); 

をあなたにそれを保存したい場合は代わりにファイルを使用してくださいSystem.IO.File.WriteAllBytes

+0

InputStreamプロパティのMSDNエントリを見てください。データを文字列に抽出する方法を説明します。http://msdn.microsoft.com/en-us/library/system.web.httprequest.inputstream.aspxデータを文字列に格納したら、それをFromBase64String方法。 –

4

私は似たようなことが必要でしたが、直接入力ストリームで作業したいので、これを使用してデコードを行いました:

// using System.Security.Cryptography 
var stream = new CryptoStream(Request.InputStream, new FromBase64Transform(), CryptoStreamMode.Read); 
var img = Image.FromStream(stream);