public MainWindow()
{
InitializeComponent();
byte[] b = GetPictureData(@"F:\WPF\TestSolution\TestReatByteFromDB\Images\123.png");
BitmapImage myimg = ByteArrayToBitmapImage(b);
this.testImg.Source = myimg;
} public byte[] GetPictureData(string imagepath)
{
/**/
////根据图片文件的路径使用文件流打开,并保存为byte[]
FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法
byte[] byData = new byte[fs.Length];
fs.Read(byData, 0, byData.Length);
fs.Close();
return byData;
} public BitmapImage ByteArrayToBitmapImage(byte[] byteArray)
{
BitmapImage bmp = null; try
{
bmp = new BitmapImage();
bmp.BeginInit();
bmp.StreamSource = new MemoryStream(byteArray);
bmp.EndInit();
}
catch
{
bmp = null;
} return bmp;
} public byte[] BitmapImageToByteArray(BitmapImage bmp)
{
byte[] byteArray = null; try
{
Stream sMarket = bmp.StreamSource; if (sMarket != null && sMarket.Length > 0)
{
//很重要,因为Position经常位于Stream的末尾,导致下面读取到的长度为0。
sMarket.Position = 0; using (BinaryReader br = new BinaryReader(sMarket))
{
byteArray = br.ReadBytes((int)sMarket.Length);
}
}
}
catch
{
//other exception handling
} return byteArray;
}