gpt4 book ai didi

c# - 将 System.Drawing.Image 转换为 System.Windows.Controls.Image?

转载 作者:太空狗 更新时间:2023-10-29 18:19:28 25 4
gpt4 key购买 nike

在 C# 中有没有办法进行这种转换并返回?

我有一个 WPF 应用程序,它有一个图像控件。我正在尝试将该控件中的图像保存到 SQL 数据库。

在我的实体模型中,数据库中图片列的数据类型是byte[]。所以我找到了一种将 System.Drawing.Image 转换为 byte[] 并返回的方法。但是我还没有找到将 System.Windows.Controls.Image 转换为 byte[] 的方法。

所以这就是我现在需要进行上述转换的原因。

最佳答案

如果您有一个表示 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];
}
}

同样,要将其转换回来,您可以执行以下操作:

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();
}
}

关于c# - 将 System.Drawing.Image 转换为 System.Windows.Controls.Image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2410419/

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