zoukankan      html  css  js  c++  java
  • 关于pictureBox绑定图像,并保存图像到数据库进行读写

    浏览:

    string fileName = string.Empty; 

    private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    openFileDialog1.Filter = "*.BMP,*.JPG;*.GIF|*.BMP;*.JPG;*.GIF";
    openFileDialog1.ShowDialog();
    fileName = openFileDialog1.FileName;
    Image a = Image.FromFile(openFileDialog1.FileName);

    Bitmap bit = new Bitmap(pictureBox1.Width, pictureBox1.Height);
    Graphics g = Graphics.FromImage(bit);//从指定的 Image 创建新的 Graphics(绘图)。
    g.DrawImage(a, new Rectangle(0, 0, bit.Width, bit.Height), new Rectangle(0, 0, a.Width, a.Height), GraphicsUnit.Pixel);
    //第一个参数:要绘制的图像
    //第二个参数:它指定所绘制图像的位置和大小。 将图像进行缩放以适合该矩形。
    //第三个参数:它指定 image 对象中要绘制的部分。
    pictureBox1.Image = bit;
    }
    确定:上传到数据库
    private void button2_Click(object sender, EventArgs e)
    {
    FileStream fs = File.OpenRead(fileName);
    byte[] img = new byte[fs.Length];
    fs.Read(img, 0,img.Length);
    fs.Close();
    SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["Conn"].ToString());
    SqlParameter p = new SqlParameter("@images", img);
    SqlCommand sc = new SqlCommand("update Employees set employeeTx = @images where employeeID =2",conn);
    sc.Parameters.Add(p);
    if (sc.Connection.State == ConnectionState.Closed)
    {
    sc.Connection.Open();
    }

    sc.ExecuteNonQuery();
    sc.Connection.Close();
    Form3 f = new Form3();
    this.Hide();
    f.Show();

    }

    Form3窗体中显示图像 :

    private void Form3_Load(object sender, EventArgs e)
    {
    SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand com = new SqlCommand("select employeeTx from Employees where employeeID = 2",conn);
    conn.Open();
    byte[] b = (byte[])com.ExecuteScalar();
    if (b.Length > 0)
    {
    MemoryStream s = new MemoryStream(b, true);
    s.Write(b,0,b.Length);

    Image a = new Bitmap(s);

    Bitmap bit = new Bitmap(pictureBox1.Width, pictureBox1.Height);
    Graphics g = Graphics.FromImage(bit);//从指定的 Image 创建新的 Graphics(绘图)。
    g.DrawImage(a, new Rectangle(0, 0, bit.Width, bit.Height), new Rectangle(0, 0, a.Width, a.Height), GraphicsUnit.Pixel);
    //第一个参数:要绘制的图像
    //第二个参数:它指定所绘制图像的位置和大小。 将图像进行缩放以适合该矩形。
    //第三个参数:它指定 image 对象中要绘制的部分。
    pictureBox1.Image = bit;
    }

    另:绘制边框

    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
      e.Graphics.DrawRectangle(new Pen(Color.Black, 2), new Rectangle(new Point(1, 1), new Size(this.pictureBox1.Width - 2, this.pictureBox1.Height - 2))); //考虑到线的宽度为4

  • 相关阅读:
    Android学习笔记(四十):Preference的使用
    java反射中Method类invoke方法的使用方法
    accept函数
    C++教程之lambda表达式一
    《windows核心编程系列》十八谈谈windows钩子
    STL学习小结
    RS-232协议和RS-485协议
    选择排序
    在asp.net mvc中使用PartialView返回部分HTML段
    uva 10560
  • 原文地址:https://www.cnblogs.com/zhcw/p/2205672.html
Copyright © 2011-2022 走看看