WPF怎么着将数据库中的二进制图片数据彰显在Image控件上,复制文件全代码

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:\Users\Public\Pictures\Sample 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控件上
            }
        }

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website