2012-06-25 37 views
0

我的代码转换图像字节,但即时得到的图像框黑屏:如何在WPF C#转换字节的图像和图像字节和显示图像框

Bitmap bitmap = new Bitmap(100, 100); 
MemoryStream MemImage = new MemoryStream(); 
bitmap.Save(name, ImageFormat.Bmp); 
bitmap.Save(MemImage, ImageFormat.Bmp); 
byte[] Byte = MemImage.ToArray(); 

转换字节的图像:

byte[] data = (byte[])Query.Images; 
MemoryStream strm = new MemoryStream(); 
strm.Write(data, 0, data.Length); 
strm.Position = 0; 
System.Drawing.Image imgTemp = System.Drawing.Image.FromStream(strm); 
BitmapImage bi = new BitmapImage(); 
bi.BeginInit(); 
MemoryStream ms = new MemoryStream(); 
imgTemp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); 
ms.Seek(0, SeekOrigin.Begin); 
bi.StreamSource = ms; 
bi.EndInit(); 
ImageBox.Source = bi; 

但在上面的代码中的一个问题是图像中的图像框(显示黑屏) 请解决这个问题,并给我是不是显示.....感谢

+0

请参阅[此问题](http://stackoverflow.com/q/94456/1136211)了解如何从位图转换为BitmapImage。 – Clemens

+0

尝试将该字节直接绑定到图像源 – JSJ

回答

3

试试这个代码

public byte[] imageToByteArray(System.Drawing.Image imageIn) 
{ 
    MemoryStream ms = new MemoryStream(); 
    imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); 
    return ms.ToArray(); 
} 
public Image byteArrayToImage(byte[] byteArrayIn) 
{ 
    MemoryStream ms = new MemoryStream(byteArrayIn); 
    Image returnImage = Image.FromStream(ms); 
    return returnImage; 
} 
+0

浏览按钮:dlg = new Microsoft.Win32.OpenFileDialog(); dlg.ShowDialog(); FileStream fs = new FileStream(dlg.FileName,FileMode.Open,FileAccess.Read); data = new byte [fs.Length]; fs.Read(data,0,System.Convert.ToInt32(fs.Length)); fs.Close(); – krish

+0

http://www.redmondpie.com/how-to-save-and-retrieve-images-in-c-wpf-application-from-sql-server-database/ – krish