博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Image和Base64互相转换
阅读量:6245 次
发布时间:2019-06-22

本文共 2748 字,大约阅读时间需要 9 分钟。

base64介绍:

Base64编码是从二进制到字符的过程,可用于在环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一(一般为128-bit的UUID)编码为一个字符串,用作HTTP和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制为适合放在URL(包括隐藏)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。

一个简单的功能,其代码如下。

public string FileToBase64(string filename)        {            string result = string.Empty;            try            {                using (FileStream fs = new FileStream(filename,FileMode.Open,FileAccess.Read))                {                    byte[] byteArray = new byte[fs.Length];                    fs.Read(byteArray,0,byteArray.Length);                    result = Convert.ToBase64String(byteArray);                }            }            catch            {                result = "";            }            return result;        }

调用:

static void Main(string[] args)        {            ImgAndBaseProject imgAndBase = new ImgAndBaseProject();            System.Console.WriteLine(imgAndBase.FileToBase64(@"C:\Users\MACHENIKE\source\repos\ImgToBaseSixFour\ImgToBaseSixFour\GitHub.png"));        }

 

 我们在winform上把这个base64变成img放到控件上,大概就长这样吧

代码:

 
public Image Base64ToImg(string base64str)        {            byte[] arr = Convert.FromBase64String(base64str);            MemoryStream ms = new MemoryStream(arr);            Bitmap bmp = new Bitmap(ms);            return bmp;        }
 

  

 完整代码如下:

public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        public string FileToBase64(string filename)        {            string result = string.Empty;            try            {                using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read))                {                    byte[] byteArray = new byte[fs.Length];                    fs.Read(byteArray, 0, byteArray.Length);                    result = Convert.ToBase64String(byteArray);                }            }            catch            {                result = "";            }            return result;        }        public Image Base64ToImg(string base64str)        {            byte[] arr = Convert.FromBase64String(base64str);            MemoryStream ms = new MemoryStream(arr);            Bitmap bmp = new Bitmap(ms);            return bmp;        }        private void Form1_Load(object sender, EventArgs e)        {            this.richTextBox1.Text = FileToBase64(@"C:\Users\MACHENIKE\source\repos\ImgToBaseSixFour\ImgToBaseSixFour\GitHub.png").Trim();        }        private void button1_Click(object sender, EventArgs e)        {            //MessageBox.Show(this.richTextBox1.Text);            this.pictureBox1.Image = Base64ToImg(this.richTextBox1.Text.Trim());        }    }
View Code

 

转载于:https://www.cnblogs.com/ZaraNet/p/10177767.html

你可能感兴趣的文章
数字图像处理----图像旋转
查看>>
iOS 报错 Library not found lPods AFNetworking
查看>>
Spark性能优化:数据本地化优化
查看>>
Java中几个常用类介绍
查看>>
程序员为什么要高薪?看完让你勇于为自己开价
查看>>
(八)spring cloud微服务分布式云架构- Spring Cloud 组件和概念介绍
查看>>
由 Tagged Pointer 联想到的一个问题
查看>>
Python代理IP爬虫的简单使用
查看>>
KVO探索
查看>>
前端错误与捕获
查看>>
玩一玩颜值测试
查看>>
动画和flex布局
查看>>
CSS布局
查看>>
第一篇:SpringBoot 2 x 构建工程
查看>>
你不了解的vue中的v-on事件绑定
查看>>
CAShaperLayer&UIBezierPath系列(二)
查看>>
小程序自定义组件(1)
查看>>
聊聊Elasticsearch的ProcessProbe
查看>>
首页Activity重复启动问题
查看>>
人工智能+建筑,会产生什么?
查看>>