C#图片转换方法:从System.Drawing.Image到System.Windows.Media.ImageSource
3星 · 超过75%的资源 需积分: 9 126 浏览量
更新于2024-09-14
收藏 2KB TXT 举报
"这篇文档介绍了如何在C#中进行图片格式转换,特别是将System.Drawing.Image类型转换为System.Windows.Media.ImageSource类型,以及如何将图片转换为字节流和从字节流还原图片。这些功能在C# Winform与WPF应用之间共享图像资源时非常有用。"
在C#编程中,经常需要在不同的图像处理库之间进行转换,特别是在Winform和WPF这两个UI框架之间。标题提到的"System.Drawing.Image转System.Windows.Media.ImageSource"就是这样的一个例子。`System.Drawing.Image`是用于Winform中的图像处理类,而`System.Windows.Media.ImageSource`则是WPF中的图像表示方式。下面我们将详细讨论这两个转换过程。
首先,我们来看如何将`System.Drawing.Image`转换为`System.Windows.Media.ImageSource`。提供的代码片段展示了一个名为`ConvertDrawingImage2MediaImageSource`的方法。这个方法接收一个`System.Drawing.Image`对象作为参数,然后通过以下步骤完成转换:
1. 创建一个`MemoryStream`实例,用于存储图像数据。
2. 创建一个`System.Windows.Media.Imaging.BitmapImage`对象,它代表WPF中的位图图像。
3. 初始化`BitmapImage`,并设置其数据源为前面创建的`MemoryStream`。
4. 将输入的`System.Drawing.Image`保存为BMP格式到内存流中。
5. 将内存流的位置重置回开始,以便`BitmapImage`可以读取数据。
6. 结束初始化`BitmapImage`,此时它已经加载了图像数据。
7. 返回转换后的`BitmapImage`作为`ImageSource`。
接下来是将`System.Drawing.Image`转换为字节流的方法`ImageToByte`。这个方法的主要用途可能是将图片保存到数据库或网络传输。步骤如下:
1. 创建一个新的`Bitmap`对象,`sceneImage`,用于复制输入的`System.Drawing.Image`,这是因为原图像可能被其他引用持有,无法直接修改。
2. 创建一个`MemoryStream`,用于存储字节流数据。
3. 使用JPEG格式保存`sceneImage`到内存流中,这一步将图像转换为字节序列。
4. 创建一个`byte`数组,长度等于内存流的长度,用于存储字节流数据。
5. 将内存流的位置重置回开始,并读取所有数据到`byte`数组中。
6. 返回包含图像数据的字节数组。
最后,代码中还提到了一个方法的摘要,即`ByteToImage`,这个方法应该是将字节流转换回`System.Drawing.Image`,但具体实现没有提供。通常,这个过程会反向操作:创建一个新的`MemoryStream`,将字节流写入该流,然后用`Image.FromStream`方法读取图像数据。
这些转换方法在处理C#中的图像资源时非常实用,尤其是在Winform和WPF混合开发或者需要在网络或数据库中存储和传输图像数据的场景下。理解并掌握这些转换技巧对于提升C#应用的图像处理能力至关重要。
2009-01-19 上传
161 浏览量
2023-06-09 上传
2023-03-26 上传
2023-05-30 上传
2023-10-12 上传
2023-06-07 上传
2023-10-19 上传
2023-05-23 上传
心猿意猴
- 粉丝: 6
- 资源: 16
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦