Base64是網(wǎng)絡上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數(shù)據(jù)的方法??刹榭碦FC2045~RFC2049,上面有MIME的詳細規(guī)范。
Base64編碼是從二進制到字符的過程,可用于在HTTP環(huán)境下傳遞較長的標識信息。采用Base64編碼具有不可讀性,需要解碼后才能閱讀。
Base64由于以上優(yōu)點被廣泛應用于計算機的各個領域,然而由于輸出內(nèi)容中包括兩個以上“符號類”字符(+, /, =),不同的應用場景又分別研制了Base64的各種“變種”。為統(tǒng)一和規(guī)范化Base64的輸出,Base62x被視為無符號化的改進版本。
下面通過代碼給大家介紹下c# 圖片與base64相互轉(zhuǎn)化問題,代碼如下所示:
public ActionResult UploadSignature2(string src_data) { Class1.Base64StrToImage(src_data, "C:\\Users\\45448\\Desktop\\1\\"+ DateTime.Now.ToString("yyyyMMddHHss") + ".png"); return Json(1, JsonRequestBehavior.AllowGet); } ////// 將Base64字符串轉(zhuǎn)換為圖片并保存到本地 /// /// base64字符串 /// 圖片保存地址,如:/Content/Images/10000.png ///public static bool Base64StrToImage(string base64Str, string savePath) { var ret = true; try { base64Str = base64Str.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "") .Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", ""); //將base64頭部信息替換 var bitmap = Base64StrToImage(base64Str); if (bitmap != null) { //創(chuàng)建文件夾 var folderPath = savePath.Substring(0, savePath.LastIndexOf('\\')); ////FileHelper.CreateDir(folderPath); if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } //圖片后綴格式 var suffix = savePath.Substring(savePath.LastIndexOf('.') + 1, savePath.Length - savePath.LastIndexOf('.') - 1).ToLower(); var suffixName = suffix == "png" ? ImageFormat.Png : suffix == "jpg" || suffix == "jpeg" ? ImageFormat.Jpeg : suffix == "bmp" ? ImageFormat.Bmp : suffix == "gif" ? ImageFormat.Gif : ImageFormat.Jpeg; //這里復制一份對圖像進行保存,否則會出現(xiàn)“GDI+ 中發(fā)生一般性錯誤”的錯誤提示 var bmpNew = new Bitmap(bitmap); bmpNew.Save(savePath, suffixName); bmpNew.Dispose(); bitmap.Dispose(); } else { ret = false; } } catch (Exception ex) { ret = false; } return ret; }
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。