C# base64 和图片互转
C# imgage图片转base64字符/base64字符串转图片另存成
- //图片转为base64编码的字符串
- protected string ImgToBase64String(string Imagefilename)
- {
- try
- {
- Bitmap bmp = new Bitmap(Imagefilename);
- MemoryStream ms = new MemoryStream();
- bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
- 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;
- }
- }
- //base64编码的字符串转为图片
- protected Bitmap Base64StringToImage(string strbase64)
- {
- try
- {
- byte[] arr = Convert.FromBase64String(strbase64);
- MemoryStream ms = new MemoryStream(arr);
- Bitmap bmp = new Bitmap(ms);
- bmp.Save(@"d:\test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
- //bmp.Save(@"d:\"test.bmp", ImageFormat.Bmp);
- //bmp.Save(@"d:\"test.gif", ImageFormat.Gif);
- //bmp.Save(@"d:\"test.png", ImageFormat.Png);
- ms.Close();
- return bmp;
- }
- catch (Exception ex)
- {
- return null;
- }
- }
- string Base64String = "";//太长就不贴出来了
- byte[] bytes = Convert.FromBase64String(Base64String);
- ImageTagId.ImageUrl = "data:image/jpeg;base64," + Convert.ToBase64String(bytes);//
3:转换成图片另存为然后图片显示出来
- public System.Drawing.Image Base64ToImage(string base64String)
- {
- byte[] imageBytes = Convert.FromBase64String(base64String);
- MemoryStream ms = new MemoryStream(imageBytes, , imageBytes.Length);
- ms.Write(imageBytes, , imageBytes.Length);
- System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
- return image;
- }
- 使用方法:
- Base64ToImage(dd).Save(Server.MapPath("Hello.jpg"));
- Image1.ImageUrl = "Hello.jpg";
4:直接转换存为路径下图片
- string dd = "";//base64字符串
- var bytes = Convert.FromBase64String(dd);
- using (var imageFile = new FileStream(@"d:\Hello1.jpg", FileMode.Create))
- {
- imageFile.Write(bytes, , bytes.Length);
- imageFile.Flush();
- }
5://直接转换存为路径下图片
- string base64Str=""/
- byte[] bytes = System.Convert.FromBase64String(dd);
- File.WriteAllBytes(@"d:\newfile.jpg", bytes);
- string filePath = @"d:\MyImage.jpg";
- File.WriteAllBytes(filePath, Convert.FromBase64String(base64Str));
6:多张base64图片转换为图片另存为
- public string Base64ToImage(string upimgPath, string base64String)
- {
- string goodspath = Server.MapPath(upimgPath); //用来生成文件夹
- if (!Directory.Exists(goodspath))
- {
- Directory.CreateDirectory(goodspath);
- }
- var imgPath = string.Empty;
- if (!string.IsNullOrEmpty(base64String))
- {
- var splitBase = base64String.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
- foreach (var item in splitBase)
- {
- var path = upimgPath + Guid.NewGuid() + ".jpg";
- string filePath = Server.MapPath(path);// Server.MapPath(upimgPath + Guid.NewGuid() + ".jpg");
- File.WriteAllBytes(filePath, Convert.FromBase64String(item));
- imgPath += path + ";";
- }
- }
- else { imgPath = ";"; }
- return imgPath.TrimEnd(';');
- }
使用方法:
- va headimg="";
- Base64ToImage("UpLoadImg/HeadImage/", headimg)
C# base64 和图片互转的更多相关文章
- base64和图片互转
pom.xml添加 <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <dependen ...
- bolb与base64的图片互转
直接看图简单明了. 注:便于测试你可以自己用base64图片测试互转一下.这里base64图片太长了就不给予展示了,望理解
- 页面以base64输出图片
<% //读取文件路径,输出base64 编码 System.IO.FileStream stream = System.IO.File.OpenRead(ViewBag.FilePath); ...
- base64和图片的转换
/// <summary> /// base64转图片 /// </summary> /// <param name="strBase64">& ...
- 通过data:image/png;base64把图片直接写在src里
从网上下了个源文件查看时候发现了引用图片的地址不是在本地上的,而是后面跟了一大串字符data:image/png;base64...查了一下资料分析如下: 关于用base64存储图片 网页上有些图片的 ...
- c# API接收Base64转图片
/// <summary> /// API接收Base64转图片 /// </summary> /// <param name="Img">图片 ...
- base64加密图片处理
场景:下载html中内嵌的base64加密图片 举个例子,博客园的插入图片有两种方式,一是引用图片链接,二是直接粘贴2进制图片文件.以第二种方式的图片则是以base64加密的方式内嵌在html页面中. ...
- 前端上传 base64 编码图片到七牛云存储
参考文档 如何上传base64编码图片到七牛云 调试过程 文档中分别有 java 和 html 的 demo,可以根据文档示例调试. 下面是我调试的过程,可以作为参考,特别注意的是,如果需要给文件起名 ...
- 在HTML中显示base64 img 图片
base64的图片可以直接显示在网页上面 <img src=“data:image/png;base64,******************************************** ...
随机推荐
- 洛谷P3369 【模板】普通平衡树(Splay)
题面 传送门 题解 鉴于最近的码力实在是弱到了一个境界--回来重新打一下Splay的板子--竟然整整调了一个上午-- //minamoto #include<bits/stdc++.h> ...
- python 带参与不带参装饰器的使用与流程分析/什么是装饰器/装饰器使用注意事项
一.什么是装饰器 装饰器是用来给函数动态的添加功能的一种技术,属于一种语法糖.通俗一点讲就是:在不会影响原有函数的功能基础上,在原有函数的执行过程中额外的添加上另外一段处理逻辑 二.装饰器功能实现的技 ...
- 換根lca
假設我們要求u,v,在根為rt情況下的lca 則lca為lca(u,v),lca(u,rt),lca(v,rt)中的深度的最大值
- 合服导致 globalserver 起不来的问题
globalserver 报错 RMIInitArmyBackObject InitError 根据报错信息一路追查下来,发现某个帮派的数据解析 json 的时候报错.监视变量,找出这段字符串,大致结 ...
- Github只下载某一目录的文件
比如要下载: https://github.com/xubo245/SparkLearning/tree/master/docs 将“tree/master”改成“trunk https://gith ...
- 使用SUI框架下的<a>标签点击跳转页面不刷新的问题
最近写好了几个页面,今天试着将各个页面的链接打通,然后问题就来了...(╯︵╰) 这里看一下原来想要实现的两个页面跳转的效果--点击图一标注的栏目可以跳转到一个新的页面图二... 按照之前写a标签的跳 ...
- 常见手机的useragent
设备 系统 浏览器 User-Agent 华为Mate 10 Pro Android QQ浏览器 Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL ...
- shiro授权-记调试过程
根据张开涛老师的shiro教程学习过程中 感觉shiro授权这块有点绕 调试了十几遍 大概有个思路 记录一下 1.单元测试入口 2.subject().isPermitted("+user ...
- leetcode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
目录 题目描述: 示例: 解法: 题目描述: 给定一个二叉树,原地将它展开为链表. 示例: 给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ ...
- EF基础知识小记七(拆分实体到多个表以及拆分表到多个实体)
一.拆分实体到多个表 1.在日常开发中,会经常碰到一些老系统,当客户提出一些新的需求,这些需求需要在原来的表的基础上加一些字段,大多数人会选择通过给原表添加字段的方式来完成这些需求,方法,虽然可行,但 ...