C#中图片与BASE64码互相转换

摘要:
1//图像转换为base64编码的文本2 privatevoid按钮1_单击(objectsender,EventArgse)3{4OpenFileDialogdlg=newOpenFileDiaog();5dlg.Multiselect=true;6dlg.Title=“选择要转换的图片”;7dlg.Filter=“图像文件(*.jpg;*.bmp;*.gif;*.png
1 //图片 转为    base64编码的文本
2         private void button1_Click(objectsender, EventArgs e)
3 {
4             OpenFileDialog dlg = newOpenFileDialog();
5             dlg.Multiselect = true;
6             dlg.Title = "选择要转换的图片";
7             dlg.Filter = "Image files (*.jpg;*.bmp;*.gif;*.png)|*.jpg*.jpeg;*.gif;*.bmp|AllFiles (*.*)|*.*";
8             if (DialogResult.OK ==dlg.ShowDialog())
9 {
10                 for (int i = 0; i < dlg.FileNames.Length; i++)
11 {
12 ImgToBase64String(dlg.FileNames[i].ToString());
13 }
14 }
15 }
16         //图片 转为    base64编码的文本
17         private void ImgToBase64String(stringImagefilename)
18 {
19             try
20 {
21                 Bitmap bmp = newBitmap(Imagefilename);
22                 this.pictureBox1.Image =bmp;
23                 FileStream fs = new FileStream(Imagefilename + ".txt", FileMode.Create);
24                 StreamWriter sw = newStreamWriter(fs);
25 
26                 MemoryStream ms = newMemoryStream();
27 bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
28                 byte[] arr = new byte[ms.Length];
29                 ms.Position = 0;
30                 ms.Read(arr, 0, (int)ms.Length);
31 ms.Close();
32                 String strbaser64 =Convert.ToBase64String(arr);
33 sw.Write(strbaser64);
34 
35 sw.Close();
36 fs.Close();
37                //MessageBox.Show("转换成功!");
38 }
39             catch(Exception ex)
40 {
41                 MessageBox.Show("ImgToBase64String 转换失败
Exception:" +ex.Message);
42 }
43 }
44 
45         //base64编码的文本 转为    图片
46         private void button2_Click(objectsender, EventArgs e)
47 {
48             OpenFileDialog dlg = newOpenFileDialog();
49             dlg.Multiselect = true;
50             dlg.Title = "选择要转换的base64编码的文本";
51             dlg.Filter = "txt files|*.txt";
52             if (DialogResult.OK ==dlg.ShowDialog())
53 {
54                 for (int i = 0; i < dlg.FileNames.Length; i++)
55 {
56 Base64StringToImage(dlg.FileNames[i].ToString());
57 }
58                 
59 }
60 }
61         //base64编码的文本 转为    图片
62         private void Base64StringToImage(stringtxtFileName)
63 {
64             try
65 {
66                 FileStream ifs = newFileStream(txtFileName, FileMode.Open, FileAccess.Read);
67                 StreamReader sr = newStreamReader(ifs);
68 
69                 String inputStr =sr.ReadToEnd();
70                 byte[] arr =Convert.FromBase64String(inputStr);
71                 MemoryStream ms = newMemoryStream(arr);
72                 Bitmap bmp = newBitmap(ms);
73 
74                 //bmp.Save(txtFileName + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
75                 //bmp.Save(txtFileName + ".bmp", ImageFormat.Bmp);
76                 //bmp.Save(txtFileName + ".gif", ImageFormat.Gif);
77                 //bmp.Save(txtFileName + ".png", ImageFormat.Png);
78 ms.Close();
79 sr.Close();
80 ifs.Close();
81                 this.pictureBox2.Image =bmp;
82                 if(File.Exists(txtFileName))
83 {
84 File.Delete(txtFileName);
85 }
86                 //MessageBox.Show("转换成功!");
87 }
88             catch(Exception ex)
89 {
90                 MessageBox.Show("Base64StringToImage 转换失败
Exception:" +ex.Message);
91 }
92         }

免责声明:文章转载自《C#中图片与BASE64码互相转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Altium designer 16 keepout层之禁止布线的使用心得CefSharp 支持mp4下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jenkins pipeline实现自动构建并部署至k8s

在日常开发中,经常会有发布的需求,而且经常会碰到各种环境,比如:开发环境、测试环境、生产环境。虽然可以使用手动构建、上传服务器部署的方式,但在微服务架构下一个项目经常包含多个微服务的部署,如果用手动方式就会非常繁琐而且容易出错。使用jenkins结合SCM可以实现代码的整个自动化构建部署过程。 本文中自动构建部署过程大致完成了以下步骤: 提交spring...

微信小程序生成带参数的二维码(小程序码)独家asp.net的服务端c#完整代码

一)我先用的小程序端的wx.request去调用API,发现竟然是一个坑! wx.request({ url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + token, method: "POST", responseTy...

C# 处理base64 以及base64的原理分析

u  博客园 首页 新随笔 联系 订阅 管理 随笔 - 2009  文章 - 1  评论 - 74 C# 处理base64 以及base64的原理分析  base64的原理, http://www.cnblogs.com/diligenceday/p/6002382.html http://www.cnblogs.com/chengxi...

使用 RSA 非对称加密保证数据不被篡改 java 例子代码

原理: 对原始数据 生成有序的json 字符串,然后取 摘要,然后 对摘要 进项 分对称加密。( 不对原数据加密是应为 原数据太大,加解密速度太慢,非对称加密都不 挺慢的。在摘要函数具有雪崩效应 ,原文发生点点的改变都会引起 摘要的剧烈变化 ) 注意事项:因为使用的 对json 排序。而不是 传统的 from 表单方式。虽然 让请求响应都支持了json 变...

golang包快速生成base64验证码

base64Captcha快速生成base64编码图片验证码字符串 支持多种样式,算术,数字,字母,混合模式,语音模式. Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64编码可用于在HTTP环境下传递较长的标识信息, 直接把base64当成是字符串方式的数据就好了 减少了http请求;数据就是图片; 为APIs微服务而设计...

FlexCell图片显示问题

1、  在FlexCell设计器中,添加图片,导出xml 可以看到  图片不大于20k显示:(20KB为不准确的数字)     图1 图片大于20k显示:(20KB为不准确的数字) 图2 图片转换为一串字符串,是Base64编码格式的 2、  所以flexcell图片显示问题思路是: 1)上传图片同时,转换为以base64编码格式的字符串; 显示时,按1...