c# 中base64字符串和圖片的相互轉換


c#base64字符串轉圖片用到了bitmap類,封裝 GDI+ 位圖,此位圖由圖形圖像及其特性的像素數據組成。 Bitmap 是用於處理由像素數據定義的圖像的對象。

具體bitmap類是什么可以自己百度查詢,這里就不多介紹了。

        #region base64轉圖片
        /// <summary>
        /// 圖片上傳 Base64解碼
        /// </summary>
        /// <param name="dataURL">Base64數據</param>
        /// <param name="imgName">圖片名字</param>
        /// <returns>返回一個相對路徑</returns>
        public string decodeBase64ToImage(string dataURL,string imgName)
        {

            string filename = "";//聲明一個string類型的相對路徑

            String base64 = dataURL.Substring(dataURL.IndexOf(",") + 1);      //將‘,’以前的多余字符串刪除
            System.Drawing.Bitmap bitmap = null;//定義一個Bitmap對象,接收轉換完成的圖片

            try//會有異常拋出,try,catch一下
            {

                byte[] arr = Convert.FromBase64String(base64);//將純凈資源Base64轉換成等效的8位無符號整形數組

                System.IO.MemoryStream ms = new System.IO.MemoryStream(arr);//轉換成無法調整大小的MemoryStream對象
                bitmap = new System.Drawing.Bitmap(ms);//將MemoryStream對象轉換成Bitmap對象

                filename ="Knowledge_" + imgName + ".jpg";//所要保存的相對路徑及名字
                string url =HttpRuntime.AppDomainAppPath.ToString();
                string tmpRootDir = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString()); //獲取程序根目錄 
                string imagesurl2 = tmpRootDir + filename; //轉換成絕對路徑 
                bitmap.Save(imagesurl2, System.Drawing.Imaging.ImageFormat.Jpeg);//保存到服務器路徑
                //bitmap.Save(filePath + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
                //bitmap.Save(filePath + ".gif", System.Drawing.Imaging.ImageFormat.Gif);
                //bitmap.Save(filePath + ".png", System.Drawing.Imaging.ImageFormat.Png);
                ms.Close();//關閉當前流,並釋放所有與之關聯的資源
                bitmap.Dispose();
            }
            catch (Exception e)
            {
               string massage= e.Message;
            }
            return filename;//返回相對路徑
        }
        #endregion

        #region 圖片轉base64
        /// <summary>
        /// 圖片轉base64
        /// </summary>
        /// <param name="path">圖片路徑</param>
/// <returns>返回一個base64字符串</returns> public string decodeImageToBase64(string path) { path = "E:/vs 2015/newaqtcprj/WEB/UpFile/2018/12/20181229174708_7471722c425a2ec08fa513ddf4f8c76306d55fbb0fbd9d8.jpg"; string base64str = ""; //站點文件目錄 string fileDir = HttpContext.Current.Server.MapPath("/"); string[] arrfileDir = fileDir.Split('\\'); fileDir = arrfileDir[0] + "\\" + arrfileDir[1] + "\\" + arrfileDir[2]; try { //讀圖片轉為Base64String System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(Path.Combine(fileDir, "WEB\\UpFile\\2018\\12\\20181229174708_7471722c425a2ec08fa513ddf4f8c76306d55fbb0fbd9d8.jpg")); //System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(path); MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] arr = new byte[ms.Length]; ms.Position = 0; ms.Read(arr, 0, (int)ms.Length); ms.Close(); bmp.Dispose(); base64str = Convert.ToBase64String(arr); } catch (Exception e) { string mss = e.Message; } return "data:image/jpg;base64," + base64str; } #endregion

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM