base 64符号化されたテキストを画像に変換してアップロード保存を実現します.


base 64コードのテキストを    画像 
base 64コードのテキストを    画像 
private Image Base64StringToImage(string txt)
        {
            byte[] arr = Convert.FromBase64String(txt);
            MemoryStream ms = new MemoryStream(arr);
            Bitmap bmp = new Bitmap(ms);
            return bmp;
        }
呼び出し:
Image returnImage = Base64StringToImage(str);
str:
string str = byteStr.Substring(delLength, byteStr.Length - delLength);
byteStr:
string byteStr = Request["getDataURL"].ToString();//data:image/jpg;base64,
delLength:
int delLength = byteStr.IndexOf(',') + 1;
画像に変換するbase 64 data:image/jpg;base 64、このヘッダファイル
完全なコードを実現:
public string ProcessRequest()
        {
            try
            {
                string byteStr = Request["getDataURL"].ToString();//data:image/jpg;base64,       
                int delLength = byteStr.IndexOf(',') + 1;
                string str = byteStr.Substring(delLength, byteStr.Length - delLength);
                Image returnImage = Base64StringToImage(str);
                returnImage.Save(Server.MapPath("/upload/UploadAction/") + Guid.NewGuid() + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch (Exception)
            {
                return "    ";
            }
            return "    ";
        }
        //base64                
        private Image Base64StringToImage(string txt)
        {
            byte[] arr = Convert.FromBase64String(txt);
            MemoryStream ms = new MemoryStream(arr);
            Bitmap bmp = new Bitmap(ms);
            return bmp;
        }
ここでbase 64符号化は、フロントjsがcanvas.todataurlで来ることができる.
dataURL = canvas.toDataURL(type);
その後ajax非同期でその処理を除去するために提出する:
$.ajax({
                url: "imageRequest.aspx",//?getDataURL=" + $("#fuPiccropper").cropper("getDataURL", "image/jpeg"),
                type: "post",
                dataType: "text",
                data: {
                    "getDataURL": $("#fuPiccropper").cropper("getDataURL", "image/jpeg")
                },//   base64            
                success: function (data) {
                    alert("sucess");
                }, error: function () {
                    alert("failure");
                }
            });
上の方
cropper
は、画像のスクリーンショットを実現するプラグインであり、canvasからdataurlに変換する方法があり、ここでは詳細に説明する必要はない.
なお、バックグラウンドコードには
returnImage.Save(Server.MapPath("/upload/UploadAction/") + Guid.NewGuid() + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
は、復号後のbitmapをピクチャとして保存し、パラメータは保存経路とファイル名です.非同期処理では、一般的な処理プログラムではなく、例えば私のようにaspxウェブページを使っています.処理方法をロードする時に必ず実行します.あるいは直接にパスに記入してください.ロード中です
protected void Page_Load(object sender, EventArgs e)
        {
            ProcessRequest();
        }
非同期処理プログラムには参照が必要です.
using System;
using System.Drawing;
using System.IO;