有没有办法将ImageSource对象转换为字节数组?我有一个绑定到WPF窗口的ImageSource对象,我可以从数据库转换一个字节数组并将其转换为ImageSource,但我不能以相反的方式.
Thx提前.
编辑:我试图将ImageSource转换为BitmapImage,但得到一个null对象.
Cle*_*ens 12
即使你的ImageSource不是BitmapImage,你仍然可以成功地将它投射到BitmapSource,这是所有WPF位图类的基类,如BitmapImage,BitmapFrame,WriteableBitmap,RenderTargetBitmap等(见这里).
因此,如果您的ImageSource实际上是BitmapSource(而不是DrawingImage或D3DImage),则以下方法使用指定的BitmapEncoder(例如PngBitmapEncoder)将其转换为字节数组:
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11224 次 |
| 最近记录: |