c#图片与Base64码的相互转化问题(代码详解)

  

Base64是网络上最常见的用于传输8位字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045 ~ RFC2049,上面有MIME的详细规范。
  Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
  Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+,/=),不同的应用场景又分别研制了Base64的各种“变”种。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。

  

下面通过代码给大家介绍下c#图片与base64相互转化问题,代码如下所示:

        公共ActionResult UploadSignature2(字符串src_data)   {   Class1。Base64StrToImage (src_data“C: \ \ \ \ 45448 \ \用户桌面\ \ 1 \ \ " + DateTime.Now.ToString (“yyyyMMddHHss”) + . png);   JsonRequestBehavior.AllowGet返回Json(1日);   }///& lt; summary>///将Base64字符串转换为图片并保存到本地///& lt;/summary>///& lt;参数name=" base64Str祝辞base64字符串& lt;/param>///& lt;参数name=" savePath祝辞图片保存地址,如:/内容/图片/10000. png///& lt; returns> & lt;/returns>   base64Str公共静态bool Base64StrToImage(字符串,字符串savePath)   {   var ret=true;   试一试   {   base64Str=base64Str.Replace(“数据:图像/png; base64, ", " ") .Replace(“数据:图像/jgp; base64, ", " ")   .Replace(“数据:图像/jpg; base64, ", " ") .Replace(“数据:图像/jpeg, base64”, " ");//将base64头部信息替换   var位图=Base64StrToImage (base64Str);   如果(位图!=null)   {//创建文件夹   var folderPath=savePath。Substring (0, savePath.LastIndexOf (' \ \ '));////FileHelper.CreateDir (folderPath);   如果(! Directory.Exists (folderPath))   {   Directory.CreateDirectory (folderPath);   }//图片后缀格式   var后缀=savePath.Substring (savePath.LastIndexOf (' . ') + 1,   savePath。长度- savePath.LastIndexOf (“。”) - 1) .ToLower ();   var suffixName===后缀“png”   & # 63;ImageFormat.Png   :“jpg”后缀==| |后缀==癹peg”   & # 63;ImageFormat.Jpeg   :后缀==" bmp "   & # 63;ImageFormat.Bmp   :后缀==癵if”   & # 63;ImageFormat.Gif   :ImageFormat.Jpeg;//这里复制一份对图像进行保存,否则会出现“GDI +中发生一般性错误”的错误提示   var bmpNew=新的位图(位图);   bmpNew。保存(savePath suffixName);   bmpNew.Dispose ();   bitmap.Dispose ();   }   其他的   {   ret=false;   }   }   捕获(异常交货)   {   ret=false;   }   返回受潮湿腐烂;      }         ///& lt; summary>///图像转成base64///& lt;/summary>///& lt;参数name=" fileFullName祝辞& lt;/param>   fileFullName ImageToBase64公共静态字符串(字符串)   {   试一试   {   位图bmp=新的位图(fileFullName);   MemoryStream=new MemoryStream女士();   var后缀=fileFullName.Substring (fileFullName.LastIndexOf (' . ') + 1,   fileFullName。长度- fileFullName.LastIndexOf (“。”) - 1) .ToLower ();   var suffixName===后缀“png”   & # 63;ImageFormat.Png   :“jpg”后缀==| |后缀==癹peg”   & # 63;ImageFormat.Jpeg   :后缀==" bmp "   & # 63;ImageFormat.Bmp   :后缀==癵if”   & # 63;ImageFormat.Gif   :ImageFormat.Jpeg;      bmp。保存(女士,suffixName);   byte [] arr=新的字节(ms.Length);ms.Position=0;   ms.Read (arr 0 (int) ms.Length);ms.Close ();   返回Convert.ToBase64String (arr);   }   捕获(异常交货)   {   返回null;   }   }      

到此这篇关于c#图片与Base64码的相互转化问题(代码详解)的文章就介绍到这了,更多相关c#图片与Base64相互转化内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

c#图片与Base64码的相互转化问题(代码详解)