WPF如何将数据库中的二进制图片数据显示在Image控件上

时间:2022-09-21 19:11:40

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

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

BitMapImage bmp = new BitMapImage();

bmp.BeginInit();//初始化

bmp.StreamSource = stream;//设置源

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

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

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

public class emp

{

  public byte[] Photo{set;get;}

}

xaml中的代码

 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控件上
            }
        }