//图片 转为 base64编码的文本
private void button1_click(object sender, eventargs e)
{
openfiledialog dlg = new openfiledialog();
dlg.multiselect = true;
dlg.title = "选择要转换的图片";
dlg.filter = "image files (*.jpg;*.bmp;*.gif;*.png)|*.jpg*.jpeg;*.gif;*.bmp|allfiles (*.*)|*.*";
if (dialogresult.ok == dlg.showdialog())
{
for (int i = 0; i {
imgtobase64string(dlg.filenames[i].tostring());
}
}
}
//图片 转为 base64编码的文本
private void imgtobase64string(string imagefilename)
{
try
{
bitmap bmp = new bitmap(imagefilename);
this.picturebox1.image = bmp;
filestream fs = new filestream(imagefilename + ".txt", filemode.create);
streamwriter sw = new streamwriter(fs);
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();
string strbaser64 = convert.tobase64string(arr);
sw.write(strbaser64);
sw.close();
fs.close();
// messagebox.show("转换成功!");
}
catch (exception ex)
{
messagebox.show("imgtobase64string 转换失败\nexception:" + ex.message);
}
}
//base64编码的文本 转为 图片
private void button2_click(object sender, eventargs e)
{
openfiledialog dlg = new openfiledialog();
dlg.multiselect = true;
dlg.title = "选择要转换的base64编码的文本";
dlg.filter = "txt files|*.txt";
if (dialogresult.ok == dlg.showdialog())
{
for (int i = 0; i {
base64stringtoimage(dlg.filenames[i].tostring());
}
}
}
//base64编码的文本 转为 图片
private void base64stringtoimage(string txtfilename)
{
try
{
filestream ifs = new filestream(txtfilename, filemode.open, fileaccess.read);
streamreader sr = new streamreader(ifs);
string inputstr = sr.readtoend();
byte[] arr = convert.frombase64string(inputstr);
memorystream ms = new memorystream(arr);
bitmap bmp = new bitmap(ms);
//bmp.save(txtfilename + ".jpg", system.drawing.imaging.imageformat.jpeg);
//bmp.save(txtfilename + ".bmp", imageformat.bmp);
//bmp.save(txtfilename + ".gif", imageformat.gif);
//bmp.save(txtfilename + ".png", imageformat.png);
ms.close();
sr.close();
ifs.close();
this.picturebox2.image = bmp;
if (file.exists(txtfilename))
{
file.delete(txtfilename);
}
//messagebox.show("转换成功!");
}
catch (exception ex)
{
messagebox.show("base64stringtoimage 转换失败\nexception:" + ex.message);
}
}
C#中图片与BASE64码互相转换
来源:这里教程网
时间:2026-02-21 13:01:07
作者:
编辑推荐:
- C#中图片与BASE64码互相转换02-21
- C# 键盘钩子02-21
- C#异步方法执行代码02-21
- C#响应系统配置项的变更02-21
- C#检查程序对内存的消耗02-21
- 《超级马力欧银河大电影》角色阵容泄露,瓦力欧有望联手库巴 Jr.登场02-21
- LibreOffice 抨击 OnlyOffice 是“伪开源”,联手微软裹挟用户02-21
- 任天堂 GBA 经典复刻《宝可梦 火红/叶绿》上架 Switch 商店,2 月 27 日正式发售02-21
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 《超级马力欧银河大电影》角色阵容泄露,瓦力欧有望联手库巴 Jr.登场
《超级马力欧银河大电影》角色阵容泄露,瓦力欧有望联手库巴 Jr.登场
26-02-21 - LibreOffice 抨击 OnlyOffice 是“伪开源”,联手微软裹挟用户
- 任天堂 GBA 经典复刻《宝可梦 火红/叶绿》上架 Switch 商店,2 月 27 日正式发售
- 索尼出手叫停粉丝重制《血源诅咒》项目,系列游戏前景渺茫
索尼出手叫停粉丝重制《血源诅咒》项目,系列游戏前景渺茫
26-02-21 - 游戏《尼尔:自动人形》累计销量突破 1000 万份
游戏《尼尔:自动人形》累计销量突破 1000 万份
26-02-21 - 育碧多伦多工作室裁员 40 人,《细胞分裂》重制版游戏仍在推进
育碧多伦多工作室裁员 40 人,《细胞分裂》重制版游戏仍在推进
26-02-21 - NZXT 恩杰推出《尼尔》系列 15 周年纪念款 H5 Flow 机箱
NZXT 恩杰推出《尼尔》系列 15 周年纪念款 H5 Flow 机箱
26-02-21 - 《使命召唤:黑色行动 7》登顶美国 1 月游戏销量榜,《GTA5》《荒野大镖客:救赎 2》仍在榜单前十
- 美国洛杉矶政府起诉《Roblox》游戏,指其成恋童癖犯罪温床
美国洛杉矶政府起诉《Roblox》游戏,指其成恋童癖犯罪温床
26-02-21 - 消息称第十世代《宝可梦:风 / 浪》游戏 2 月 27 日亮相
消息称第十世代《宝可梦:风 / 浪》游戏 2 月 27 日亮相
26-02-21
