C#实现的图片、string相互转换类分享
作者:junjie 时间:2022-04-17 04:50:34
C#中,Image为源自 Bitmap 和 Metafile 的类提供功能的抽象基类,也就是说更通用,当我们用Image.FromFile("xxx")时创建出来的是Image的某个派生类实体,所以我用Image作为参数,而不是Bitmap之类的。
图片在于string转换的时候中间借助于MemorySteam和Byte数组,下面是我写的FormatChange类,里面两个互相转换的过程。当然这里面也就包含了图片与Byte[]数组的相互转换喽。
class FormatChange
{
public static string ChangeImageToString(Image image)
{
try
{
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
string pic = Convert.ToBase64String(arr);
return pic;
}
catch (Exception)
{
return "Fail to change bitmap to string!";
}
}
public static Image ChangeStringToImage(string pic)
{
try
{
byte[] imageBytes = Convert.FromBase64String(pic);
//读入MemoryStream对象
MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
memoryStream.Write(imageBytes, 0, imageBytes.Length);
//转成图片
Image image = Image.FromStream(memoryStream);
return image;
}
catch (Exception)
{
Image image = null;
return image;
}
}
}
标签:C#,图片,string,相互转换
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C#实现将DataTable内容输出到Excel表格的方法
2023-05-01 15:20:38
![](https://img.aspxhome.com/file/2023/4/68084_0s.png)
mybatis注解与xml常用语句汇总
2022-05-17 18:39:47
Maven生命周期和及插件原理用法详解
2021-09-17 09:47:19
![](https://img.aspxhome.com/file/2023/2/75442_0s.png)
Java 添加超链接到 Word 文档方法详解
2023-01-29 08:49:30
![](https://img.aspxhome.com/file/2023/8/70538_0s.png)
Java线程池submit阻塞获取结果的实现原理详解
2021-08-29 03:55:45
![](https://img.aspxhome.com/file/2023/7/64797_0s.png)
jdk8的datetime时间函数使用示例
2021-07-03 16:42:37
Java Objects工具类原理及用法详解
2022-10-15 01:40:35
![](https://img.aspxhome.com/file/2023/4/78224_0s.jpg)
spring MVC实践需要注意的地方
2023-02-07 00:33:07
Spring基于注解的缓存声明深入探究
2023-01-20 13:26:06
Java工具类DateUtils实例详解
2022-08-22 00:40:35
C#实现观察者模式(Observer Pattern)的两种方式
2023-06-20 21:05:18
![](https://img.aspxhome.com/file/2023/0/66130_0s.png)
IDEA离线安装maven helper插件的图文教程
2023-11-28 16:00:24
![](https://img.aspxhome.com/file/2023/3/78053_0s.jpg)
JAVA简单工厂模式(从现实生活角度理解代码原理)
2021-10-29 12:39:32
Java并发包线程池ThreadPoolExecutor的实现
2022-11-10 09:52:41
![](https://img.aspxhome.com/file/2023/3/64383_0s.jpg)
Flyway详解及Springboot集成Flyway的详细教程
2022-09-21 10:37:49
![](https://img.aspxhome.com/file/2023/4/70304_0s.jpg)
Java Excel透视表相关操作实现代码
2022-02-27 00:11:01
![](https://img.aspxhome.com/file/2023/8/65218_0s.png)
C#中this指针的用法示例
2021-07-21 14:12:24
详解Java后端优雅验证参数合法性
2021-09-06 16:07:22
![](https://img.aspxhome.com/file/2023/9/60159_0s.jpg)
Seata AT模式TransactionHook被删除探究
2022-01-12 14:56:49
![](https://img.aspxhome.com/file/2023/2/63492_0s.png)
Spring实战之SpEl语法实例详解
2023-09-18 07:56:03