WinForm实现保存图片,读取图片(Stream流的形式)

直接将图片保存到数据库,可能会导致数据库压力比较大,当然这样有利于图片数据的迁移和备份。

这种方法只适合于保存用户头像等较小的图片。

//读取图片
           if (this.openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            { 
                pathName = this.openFileDialog1.FileName;
                System.Drawing.Image img = System.Drawing.Image.FromFile(pathName);
                this.pictureBox1.Image = img;

<span style="white-space:pre">		</span>System.IO.FileStream fs = new System.IO.FileStream(pathName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                byte[] buffByte = new byte[fs.Length];
                fs.Read(buffByte, 0, (int)fs.Length);
                fs.Close();
                fs = null; 
             }

//显示图片

<span style="white-space:pre">	</span>    MemoryStream buf = new MemoryStream((byte[])stu[0].labPic);
            Image image = Image.FromStream(buf, true);
            this.pictureBox1.Image = image;

//这是操作数据库的部分

try
            {
                string sql = "insert into students(labPic,machineID,stuTime) values(@pic,@machine,@time)";
                SqlParameter[] parameter =
                {
                    new SqlParameter("@pic",stu.labPic),
                    new SqlParameter("@machine",stu.machineID),
                    new SqlParameter("@time",stu.stuTime)
                };
                i = DbHelperSQL.ExecuteSql(sql, parameter);
            }
            catch (Exception ex)
            {
                WriteLog.WriteLogs(ex.Message);
            }
时间: 2024-10-05 04:55:08

WinForm实现保存图片,读取图片(Stream流的形式)的相关文章

02-20 winform 上传图片并读取图片

建立一个windows窗体应用程序,在form1界面中拖入两个按钮和一个pictureBox,通过输入输出流来上传图片和显示图片.需要添加一下openFileDialog1. 界面如下: 在cs中写上传和显示图片的方法 1 //上传图片 2 private void button1_Click(object sender, EventArgs e) 3 { 4 //图片的转化 5 openFileDialog1.Filter = "*jpg|*.jpg|*bmp|*.bmp|*gif|*.gif

C#(WinForm)上传图片保存到数据库和从数据库读取图片显示到窗体

1 //浏览图片 2 3 private void btnUp_Click(object sender, EventArgs e) 4 5 { 6 7 OpenFileDialog ofd = new OpenFileDialog(); 8 9 ofd.Title = "选择要上传的图片"; 10 11 ofd.Filter = "All Files(*.*)|*.*|位图(*.bmp)|*.bmp|JPEG(*.jpg)|*.jpg"; 12 13 ofd.Sho

TCP练习1:服务器端读取图片并发送给客户端,客户端保存图片到本地

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.

使用C#向Sql Sever中存取网络图片和本地图片(二进制流的形式)

先是做普通的,存储我们本地的图片,将它转化为二进制流存储到数据库对应的表中. 代码如下: string path = "../../A.jpg"; FileStream fs = new FileStream(path, FileMode.Open); int streamLength = (int)fs.Length; //获取文件流的长度. byte[] image = new byte[streamLength]; //声明字节数组,用于保存图片文件 fs.Read(image,

Asp.net 从Excel读取图片并保存,无法从内存读取图片,Excel组件和相关IIS的配置及解决办法

</pre>目的:Asp.net web页面,读取Excel,(用的office组件),中的图片注意的事项:<p></p><p>只提供部分代码,因为重点是配置.</p><p>1:要想从Excel里读取图片,只能用剪贴板的方面将图片复制到内存然后再保存图片.</p><p>2:剪贴板的使用要引用WinForm</p><p>3: Excel是单线程的方式,所以代码里使用剪贴板也要用单线程的方式

java 读取图片色深

问题: 想写一个小程序可读取图片的色深(bit-depth).网上有一些软件可完成这个功能,但是我想把程序做成一个可移植的插件. 本想用c写的,但实在麻烦,最后选择java,与很多方法不用自己写,速度快. 最后打包成一个jar包,只要装了jdk就可以在控制台运行. 我用的是MYECLIPSE,步骤如下:1.创建一个工程: 2.创建一个java class: 3.程序包含两个类getinfo.java 和 methodclass.java: getinfo.java包含main()方法,代码如下:

ajax读取图片后排列问题(先加载完图片再排列)

网上找了个瀑布流的图片排列插件.从数据库读取图片路径后显示时出现了位置重叠问题. 1 $.ajax({ 2 type: "POST", 3 url: "index.aspx", 4 data: { 'action': 'SelectImage'}, 5 dataType: "json", 6 success: function (result) { 7 var imgpanel = $("#imgitem"); 8 var i

[转]asp.net mvc 从数据库中读取图片

本文转自:http://www.cnblogs.com/mayt/archive/2010/05/20/1740358.html 首先是创建一个类,继承于ActionResult,记住要引用System.Web.Mvc命名空间,如下: public class ImageResult : ActionResult { public ImageFormat ContentType { get; set; } public Image image { get; set; } public strin

图片和流的相互转化 (c/s)

//图片转化为流保存: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Stream ms;                byte[] picbyte;                OpenFileDialog open = new OpenFileDialog();                open.Filter = "图片文件(*.jpg)|*.jpg|图片文件(*.png)|*.png|图片文件(*