本文主要是介绍C#图片保存与读取,以及图片另存操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
照片的保存与读取
/// <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#图片保存与读取,以及图片另存操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!