澳门至尊网站-首页

您的位置:澳门至尊网站 > 搜索引擎 > WPF如何将数据库中的二进制图片数据显示在Imag

WPF如何将数据库中的二进制图片数据显示在Imag

2019-10-20 12:47

private void button1_Click(object sender, EventArgs e)
{
  //创建文件对象
  FileInfo fi = null;

首先在xaml文件里定义一个Image控件,取名为img

  //实例化打开文件对话框
  OpenFileDialog ofd = new OpenFileDialog();

MemoryStream stream = new MemoryStream(获得的数据库对象);

  //设置对话框的初始路径
  ofd.InitialDirectory = @"C:UsersPublicPicturesSample Pictures";

BitMapImage bmp = new BitMapImage();

  //设置过滤器
  ofd.Filter = "图片格式|*.jpg;*.png;*.gif|记事本文档|*.txt";

bmp.BeginInit();//初始化

  ////默认过滤器下标为0
  //ofd.FilterIndex = 1;

bmp.StreamSource = stream;//设置源

  //判断是否点击打开按钮

bmp.EndInit();//初始化结束

  if(ofd.ShowDialog()==DialogResult.OK)
  {
    //创建图片文件
    fi = new FileInfo(ofd.FileName);

img.Source = bmp;//设置图像Source

    //定义变量表示文件的最终复制的目标路径
    //Application.StartupPath------Debug目录的绝对路径
    string despath = @Application.StartupPath + "\images\" + fi.Name;

很多人用这个方法都没有初始化BitMapImage ,这样将会导致错误,并无法正常获取图片数据。

 

public class emp

    //不存在则复制

{

    if(!File.Exists(despath))

  public byte[] Photo{set;get;}

    {
      //复制文件到目标路径
      fi.CopyTo(despath);
    }

}

    //获取选中文件
    textBox1.Text= fi.Name;

xaml中的代码

    //通过文件路径,获取图片并放入控件中
    pictureBox1.Image = Image.FromFile(despath);
  }
}

 private void btnChoosePhoto_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();//打开选择文件窗口
            ofd.Filter = "jpg|*.jpg|png|*.png";//过滤器
            if (ofd.ShowDialog() == true)
            {
                string fileName = ofd.FileName;//获得文件的完整路径
                emp.Photo   = File.ReadAllBytes(fileName);//把图像的二进制数据存储到emp的Photo属性中
                img.Source = new BitmapImage(new Uri(fileName));//将图片显示到Image控件上
            }
        }

本文由澳门至尊网站发布于搜索引擎,转载请注明出处:WPF如何将数据库中的二进制图片数据显示在Imag

关键词: