将System.Drawing.Image转换为System.Windows.Controls.Image?
在C#中有没有办法进行这种转换并返回?
我有一个WPF应用程序,它有一个Image控件。 我正在尝试将该控件中的图像保存到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(); } }
嗯,一个是图像,一个是显示图像的控件,所以我不认为两者之间存在转换。 但是,您可以将… Controls.Image的Source设置为您的… Drawing.Image。
根据更新进行编辑
这样做你需要的 – https://msdn.microsoft.com/en-us/library/ms233764%28VS.100%29.aspx
上述就是C#学习教程:将System.Drawing.Image转换为System.Windows.Controls.Image?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/957369.html