c# base64转字符串实例
作者:萌橙 发布时间:2021-06-25 01:47:54
标签:c#,base64,字符串
转成 Base64 形式的 System.String:
string a = "base64字符串与普通字符串互转";
byte[] b = System.Text.Encoding.Default.GetBytes(a);
//转成 Base64 形式的 System.String
a = Convert.ToBase64String(b);
Response.Write(a);
转回到原来的 System.String:
byte[] c = Convert.FromBase64String(a);
a = System.Text.Encoding.Default.GetString(c);
Response.Write(a);
补充知识: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><br> /// <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
来源:https://www.cnblogs.com/daimaxuejia/p/12893207.html
0
投稿
猜你喜欢
- 项目背景:在项目中包含两个定时任务,配置信息如下:1、@Scheduled(initialDelay = 1,fixedDelay=1000
- 1、阿里云DNS的SDK依赖<dependency> <groupId>com.aliyu
- 前言这几天同事跟我在升级Android target SDK和build tool版本的时候,碰到了一个非常搞笑的问题,基本可以算作是“坑”
- 1. 注解开发依赖注入1.1 使用@Autowired注解开启自动装配模式@Servicepublic class BookServiceI
- 本文实例讲述了Java调用Shell命令的方法。分享给大家供大家参考。具体如下:近日项目中有这样一个需求:系统中的外币资金调度完成以后,要将
- 报错信息如下:java: 无法访问org.springframework.boot.SpringApplication错误的类文件: /C:
- 前言本文主要是将最近工作中遇到的一个问题进行总结分享,主要介绍的是如何让WebView中H5页面全屏播放视频。关于这个问题,做一下简单分析,
- OutputDebugString属于windows API的,所以只要是包含了window.h这个头文件后就可以使用了。可以把调
- 【SpringBoot】通过Feign调用传递Header中参数如何通过Feign传递Header参数问题描述我们在SpringCloud中
- 一、创建项目创建一个简单的Java项目,其中Main.java为主函数,包含main方法:二、完成JAR配置进入File->Proje
- 前言总结java常见的锁区分各个锁机制以及如何使用使用方法锁名考察线程是否要锁住同步资源乐观锁和悲观锁锁住同步资源后,要不要阻塞不阻塞可以使
- 之前我们有介绍通过Spring Boot Admin来检测服务的上下线,然后进行通知功能。https://www.jb51.net/arti
- 相信对于一名JAVA开发者开说properties文件一定再熟悉不过了,比如一下配置:config.properties会经常存放一些系统常
- 前言很多人之前编写Java代码都是用的Eclipse,确实Eclipse是一个很好的工具,熟悉了之后用起来很方便,但是没办法,很多公司都强制
- 1 ArrayList在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:说明:ArrayList实现了Ra
- 题目题目要求思路:模拟用一个哈希表记录可出现的字母,然后逐一遍历每个单词每个字母,符合条件则结果加一。Javaclass Solution
- FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件
- 这篇文章主要介绍了基于spring security实现登录注销功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- springboot集成mybatis plus和dynamic-datasource注意事项环境spring-boot-starter-p
- Spring是一个非常流行的Java Web开发框架,它提供了强大的依赖注入、面向切面编程、声明式事务管理等功能,为开发者提供了高效、快速地