public ActionResult UploadSignature2(string src_data)
{
Class1.Base64StrToImage(src_data, "C:\\Users\\45448\\Desktop\\1\\"+ DateTime.Now.ToString("yyyyMMddHHss") + ".png");
return Json(, JsonRequestBehavior.AllowGet);
} /// <summary>
/// 将Base64字符串转换为图片并保存到本地
/// </summary>
/// <param name="base64Str">base64字符串</param>
/// <param name="savePath">图片保存地址,如:/Content/Images/10000.png</param>
/// <returns></returns>
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)
{
//创建文件夹
var folderPath = savePath.Substring(, savePath.LastIndexOf('\\'));
////FileHelper.CreateDir(folderPath);
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
}
//图片后缀格式
var suffix = savePath.Substring(savePath.LastIndexOf('.') + ,
savePath.Length - savePath.LastIndexOf('.') - ).ToLower();
var suffixName = suffix == "png"
? ImageFormat.Png
: suffix == "jpg" || suffix == "jpeg"
? ImageFormat.Jpeg
: suffix == "bmp"
? ImageFormat.Bmp
: suffix == "gif"
? ImageFormat.Gif
: ImageFormat.Jpeg; //这里复制一份对图像进行保存,否则会出现“GDI+ 中发生一般性错误”的错误提示
var bmpNew = new Bitmap(bitmap);
bmpNew.Save(savePath, suffixName);
bmpNew.Dispose();
bitmap.Dispose();
}
else
{
ret = false;
}
}
catch (Exception ex)
{
ret = false;
}
return ret; }
 /// <summary>
/// Image 转成 base64
/// </summary>
/// <param name="fileFullName"></param>
public static string ImageToBase64(string fileFullName)
{
try
{
Bitmap bmp = new Bitmap(fileFullName);
MemoryStream ms = new MemoryStream();
var suffix = fileFullName.Substring(fileFullName.LastIndexOf('.') + ,
fileFullName.Length - fileFullName.LastIndexOf('.') - ).ToLower();
var suffixName = suffix == "png"
? ImageFormat.Png
: suffix == "jpg" || suffix == "jpeg"
? ImageFormat.Jpeg
: suffix == "bmp"
? ImageFormat.Bmp
: suffix == "gif"
? ImageFormat.Gif
: ImageFormat.Jpeg; bmp.Save(ms, suffixName);
byte[] arr = new byte[ms.Length]; ms.Position = ;
ms.Read(arr, , (int)ms.Length); ms.Close();
return Convert.ToBase64String(arr);
}
catch (Exception ex)
{
return null;
} }

最新文章

  1. 东软HIS切换输入法卡死的解决方法
  2. 使用MEF实现通用参数设置
  3. Knockout 新版应用开发教程之&quot;text&quot;绑定
  4. http://crunchify.com/simplest-spring-mvc-hello-world-example-tutorial-spring-model-view-controller-tips/ 非常棒的spring入门,maven,以及eclipse
  5. 使用Topshelf 5步创建Windows 服务 z
  6. C#中实现VB中的CreateObject方法
  7. Android 完美退出 App (Exit)
  8. 读书笔记-你不知道的JS上-this
  9. [数据结构]C语言二叉树的实现
  10. centos6.5中 linux 升级内核
  11. opencv-python下简单KNN分类识别
  12. [c++]大数运算---利用C++ string实现任意长度正小数、整数之间的加减法
  13. stm32型号解读
  14. java.util.WeakHashMap
  15. 2.2.1synchronized方法的弊端
  16. 修改oracle默认监听端口
  17. XML文档的读、写
  18. android assets下rar文件解压到sd卡
  19. linux eclipse add desktop shortcut with root permission
  20. 使用js对select动态添加和删除OPTION

热门文章

  1. 前端使用crypto-js进行加解密
  2. vue的.sync 修饰符
  3. C++fread/fwrite的基础用法
  4. Eclipse设置类和方法的注释模板
  5. ckeditor实现WORD粘贴图片自动上传,jsp应用
  6. 【PowerOJ1754&amp;网络流24题】负载平衡问题(费用流)
  7. 【CF1249D】Too Many Segments(贪心,set,vector)
  8. win10+VS2015+opencv3.4.0配置方法
  9. 微信小程序、SSL证书、开启服务器TSL1.0、TSL1.1、TSL1.2服务
  10. 迭代器遍历列表 构造方法 constructor ArrayList Vector LinkedList Array List 时间复杂度