Ton*_*ion 8 c# wpf image type-conversion
在C#中有没有办法进行这种转换并返回?
我有一个WPF应用程序,它有一个Image控件.我正在尝试将该控件中的图像保存到SQL数据库.
在我的实体模型中,我数据库中图片列的数据类型是a byte[].所以我找到了一个将System.Drawing.Image转换为a byte[]和back的方法.但我还没有找到一个方法从System.Windows.Controls.Image转换为byte[].
所以这就是我现在需要进行上述转换的原因.
Abe*_*cht 11
如果你有一个表示WPF可以解码的文件的字节数组(bmp,jpg,gif,png,tif,ico),你可以执行以下操作:
BitmapSource LoadImage(Byte[] imageData)
{
using (MemoryStream ms = new MemoryStream(imageData))
{
var decoder = BitmapDecoder.Create(ms,
BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);
return decoder.Frames[0];
}
}
Run Code Online (Sandbox Code Playgroud)
同样,要将其转换回来,您可以执行以下操作:
byte[] SaveImage(BitmapSource bitmap)
{
using (MemoryStream ms = new MemoryStream())
{
var encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmap));
encoder.Save(ms);
return ms.GetBuffer();
}
}
Run Code Online (Sandbox Code Playgroud)
嗯,一个是图像,一个是显示图像的控件,所以我认为两者之间没有转换。但是,您可以将 ...Controls.Image 的源设置为 ...Drawing.Image。
根据更新进行编辑
这是否满足您的需要 - http://msdn.microsoft.com/en-us/library/ms233764%28VS.100%29.aspx