有没有办法将ImageSource对象转换为字节数组? 我有一个ImageSource对象绑定到一个WPF窗口,我可以从数据库转换一个字节数组并将其转换为ImageSource,但我不能以相反的方式做到这一点。将System.Windows.Media.ImageSource转换为ByteArray
Thx提前。
编辑:我试图将ImageSource转换为BitmapImage,但得到一个空对象。
有没有办法将ImageSource对象转换为字节数组? 我有一个ImageSource对象绑定到一个WPF窗口,我可以从数据库转换一个字节数组并将其转换为ImageSource,但我不能以相反的方式做到这一点。将System.Windows.Media.ImageSource转换为ByteArray
Thx提前。
编辑:我试图将ImageSource转换为BitmapImage,但得到一个空对象。
即使你的ImageSource不是一个BitmapImage的,你还可以成功地将其转换为BitmapSource
,这是基类的所有WPF位图类,如BitmapImage的,BitmapFrame,WriteableBitmap的,RenderTargetBitmap等(见here)。
public byte[] ImageSourceToBytes(BitmapEncoder encoder, ImageSource imageSource)
{
byte[] bytes = null;
var bitmapSource = imageSource as BitmapSource;
if (bitmapSource != null)
{
encoder.Frames.Add(BitmapFrame.Create(bitmapSource));
using (var stream = new MemoryStream())
{
encoder.Save(stream);
bytes = stream.ToArray();
}
}
return bytes;
}
检查:
所以,如果您的ImageSource实际上是一个的BitmapSource(而不是DrawingImage或D3DImage),下面的方法通过使用指定的BitmapEncoder(如PngBitmapEncoder)将其转换为一个字节数组该属性FileBytes – 2015-03-31 23:43:57
嗨,没有这样的属性。 – 2015-03-31 23:49:31
您现在尝试使用的代码是什么? – 2015-04-01 01:31:18