C#图片保存与读取,以及图片另存操作
c# 操作 图片 以及 读取 保存
2023-09-11 14:16:44 时间
照片的保存与读取
/// <summary> /// 图片转二进制 /// </summary> /// <param name="imgPhoto">图片对象</param> /// <returns>二进制</returns> public static byte[] PhotoImageInsert(System.Drawing.Image imgPhoto) { //将Image转换成流数据,并保存为byte[] MemoryStream mstream = new MemoryStream(); imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] byData = new Byte[mstream.Length]; mstream.Position = 0; mstream.Read(byData, 0, byData.Length); mstream.Close(); return byData; }
调用这个方法把普通转为2进制,并把它转成 Base64 形式的 System.String
string s = Convert.ToBase64String(PhotoImageInsert(PictureBox.Image))
转完之后,剩下的就是保存到数据库了,这个就是普通的Insert了,倒是要注意字段的长度
读取图片并显示出来:
如何读取的代码我就不写了,相信大家肯定是没问题的。
//字符串转二进制
byte[] imageBytes = Convert.FromBase64String(dt.Rows[0]["img_pic"].ToString());
MemoryStream ms = new MemoryStream(imageBytes);
Bitmap bmpt = new Bitmap(ms);
PictureBox.Image = bmpt;
图片另存
SaveFileDialog.Title = "附件另存"; SaveFileDialog.Filter = "jpg图片|*.JPG|gif图片|*.GIF|png图片|*.PNG|jpeg图片|*.JPEG"; SaveFileDialog.FilterIndex = 3;//设置默认文件类型显示顺序 SaveFileDialog.RestoreDirectory = true; //点了保存按钮进入if (picBox1.Image != null) { if (SaveFileDialog.ShowDialog() == DialogResult.OK) { string pictureName = SaveFileDialog.FileName; //照片另存 using (MemoryStream mem = new MemoryStream()) { //这句很重要,不然不能正确保存图片或出错(关键就这一句) Bitmap bmp = new Bitmap(picBox1.Image); //保存到磁盘文件 bmp.Save(@pictureName, PictureBox.Image.RawFormat); bmp.Dispose(); MessageBox.Show("附件另存成功!", "注意", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } else { MessageBoxEx.Show("没有附件信息!", "注意", MessageBoxButtons.OK, MessageBoxIcon.Information); }
相关文章
- C# dll注入(指定进程注入指定dll)
- MongoDB的C#封装类
- 如何使用T-SQL备份还原数据库及c#如何调用执行? C#中索引器的作用和实现。 jquery控制元素的隐藏和显示的几种方法。 localStorage、sessionStorage用法总结 在AspNetCore中扩展Log系列 - 介绍开源类库的使用(一) span<T>之高性能字符串操作实测
- EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象
- 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- C#不用union,而是有更好的方式实现 .net自定义错误页面实现 .net自定义错误页面实现升级篇 .net捕捉全局未处理异常的3种方式 一款很不错的FLASH时种插件 关于c#中委托使用小结 WEB网站常见受攻击方式及解决办法 判断URL是否存在 提升高并发量服务器性能解决思路
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能
- 【卷土重来之C#学习笔记】(二)c#编程概述
- Word控件Spire.Doc 【文档操作】教程(十):在 C# 中通过分节符将 Word 文档拆分为多个文档
- Word控件Spire.Doc 【文档操作】教程(一):在 C#、VB.NET 中创建、编写和保存 word
- Word控件Spire.Doc 【文档操作】教程(六):在 C#、VB.NET 中计算文档中的单词数、更改语言词典
- Word控件Spire.Doc 【文档操作】教程(五):在 C#、VB.NET 中合并、设置多个 Word 文档
- asp.net, c# 查询某天所有数据sql语句 用于SQLServer(mssql)
- C#【文件操作篇】PDF文件和图片互相转换
- 在C#中判断某个类是否实现了某个接口
- c#winform控件过多卡顿问题解决方案
- C#操作配置文件中appSettings,connectionStrings节点
- C# 类似java注解
- C#WinForm应用程序实现自动填充网页上的用户名和密码并点击登录按钮【转载】
- 《Visual C# 2010入门经典》一导读
- C#环境datagidview添加删除操作
- C#操作SQLite数据库
- C# 把字符串类型日期转换为日期类型(转载)
- C#:SqlHelper
- C# 链表操作