WPF如何将数据库中的二进制图片数据显示在Image控件上
首先在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控件上
}
}