gpt4 book ai didi

c# - 将 System.Windows.Media.ImageSource 转换为 ByteArray

转载 作者:太空狗 更新时间:2023-10-29 21:08:31 26 4
gpt4 key购买 nike

有没有办法将 ImageSource 对象转换为字节数组?我有一个绑定(bind)到 WPF 窗口的 ImageSource 对象,我可以从数据库转换字节数组并将其转换为 ImageSource,但我不能以相反的方式进行。

提前致谢。

编辑:我尝试将 ImageSource 转换为 BitmapImage,但得到了一个空对象。

最佳答案

即使您的 ImageSource 不是 BitmapImage,您仍然可以将其成功转换为 BitmapSource,它是所有 WPF 位图类的基类,如 BitmapImage、BitmapFrame、WriteableBitmap、RenderTargetBitmap 等(参见 here ).

因此,如果您的 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;
}

关于c# - 将 System.Windows.Media.ImageSource 转换为 ByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29380416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com