首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从System.Drawing.Bitmap加载WPF BitmapImage

System.Drawing.Bitmap是.NET中的一个类,用于处理与绘制有关的功能。WPF是一个基于.NET框架的多媒体用户界面框架,用于构建和呈现高质量的图形和媒体应用程序。

要加载WPF BitmapImage的.NET System.Drawing.Bitmap对象,可以使用以下代码:

代码语言:scss
复制
Bitmap bmp = new Bitmap("filename.jpg");
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = new MemoryStream(bmp.GetPixels());
image.EndInit();

这里,首先创建System.Drawing.Bitmap对象,然后使用GetPixels方法将其像素数据加载到一个新的.NET MemoryStream对象中。接着创建一个新的BitmapImage对象,并将MemoryStream对象中的像素数据作为源来加载图像。完成加载后,可以使用BitmapImage对象的NavigateToString方法将WPF Image控件呈现为图像或通过StreamSource属性直接呈现为图像流。

请注意,在使用此方法时需要将.NET的ImageSource属性与WPF的BitmapImage对象的StreamSource属性关联起来,以便在WPF应用程序中显示图像。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)

---- 本文即将评估的方法 本文即将采用以下四种方法获取图片: System.Drawing.Imaging.Metafile System.Drawing.Bitmap System.Windows.Media.Imaging.BitmapImage...System.Drawing.Bitmap 这个实际上是封装的 GDI+ 位图,所以其性能最好也是 GDI+ 的性能,然而都知道 GDI+ 的静态图片性能不错,但比起现代的其他框架来说确实差得多。...这是 WPF 框架中提供的显示位图的方法,生成的图片可以直接被 WPF 框架显示。...var witdh = bitmap.Width; var height = bitmap.Height; System.Windows.Media.Imaging.BitmapDecoder 这也是 WPF...框架中提供的方法,但相比完全加载图片到可以显示的 System.Windows.Media.Imaging.BitmapImage,此方法的性能会好得多。

2.2K20

【愚公系列】2023年09月 WPF控件专题 Image控件详解

欢迎 点赞✍评论⭐收藏 前言 WPF控件是Windows Presentation Foundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。...BitmapImage类用于加载图像,并将其设置为Image控件的源。 1.属性介绍 WPF中Image控件的常用属性如下: Source:设置或获取图像的源。...IsAsync:设置或获取是否异步加载图像。默认值为False。...2.常用场景 WPF中的Image控件常用于以下场景: 显示静态图片。Image控件可以加载各种静态图片格式,包括PNG、JPG、BMP、GIF等等。 显示动态图片。...除了加载外部图片文件,Image控件也可以直接加载XAML文件中的图形资源,这些资源可以是由Path、Ellipse、Rectangle或其他形状定义的图形对象,也可以是由Drawing对象定义的复杂图形

53300

WPF 由于系统颜色配置 Mscms 组件损坏启动失败

本文记录 WPF 应用程序,因为系统的颜色配置 Mscms.dll 组件损坏导致应用加载图片失败,从而启动失败的原因和解决方法 在 WPF 应用加载图片时,将会调用到系统的 Mscms.dll 组件。...刚好我遇到一个用户的设备上,他的 Mscms.dll 是损坏的,在 C:\Windows\SysWOW64\ 文件夹里面的 Mscms.dll 是 x64 的,于是在 WPF 加载将会抛出如下异常 System.Windows.Markup.XamlParseException...: 初始化“System.Windows.Media.Imaging.BitmapImage”时引发了异常。...---> System.BadImageFormatException: 试图加载格式不正确的程序。...我 https://www.dll-files.com/mscms.dll.html 里找到对应的版本,也就是 Win10 对应 Win10 的,而 Win7 对应 Win7 的,对 32 位的对应

43520

WPF 通过位处理合并图片 读取图片读取图片像素合并两张图片界面

本文告诉大家,在使用 WPF 合并两张图片的处理,可以使用像素之间的与或和异或的方式,对三个颜色的通道进行处理。 先给大家看一下软件的界面 ?...在 WPF 修改图片颜色 已经告诉大家如何修改 WPF 的图片的颜色,但是为了叠加两张图片,还需要先读取图片的颜色 读取图片 在读取图片之前需要从文件加载图片,先在解决方案放两张图片,然后进行解析 在...throw new ArgumentException(); var bitmapImage = new BitmapImage(); bitmapImage.BeginInit...formatConvertedBitmap.EndInit(); return new WriteableBitmap(formatConvertedBitmap); } 通过这个方法就可以解决方案拿到...throw new ArgumentException(); var bitmapImage = new BitmapImage(); bitmapImage.BeginInit

2.2K20

WPF 通过位处理合并图片

本文告诉大家,在使用 WPF 合并两张图片的处理,可以使用像素之间的与或和异或的方式,对三个颜色的通道进行处理。...在 WPF 修改图片颜色 已经告诉大家如何修改 WPF 的图片的颜色,但是为了叠加两张图片,还需要先读取图片的颜色 读取图片 在读取图片之前需要从文件加载图片,先在解决方案放两张图片,然后进行解析 在...WPF 如何需要读取解决方案的图片,可以使用 GetResourceStream 的方法,注意图片放在解决方案需要修改生成方式为资源 在 WPF 的读取资源是使用 URL 的方式,我这里在解决方案放的图片是在项目的文件夹...throw new ArgumentException(); var bitmapImage = new BitmapImage(); bitmapImage.BeginInit...formatConvertedBitmap.EndInit(); return new WriteableBitmap(formatConvertedBitmap); } 通过这个方法就可以解决方案拿到

63210

WPF 文件创建图片的方法

本文告诉大家通过 FileStream 创建文件的方法 如果直接通过文件的 URL 创建,那么可能出现文件被占用的问题,不能比较好做文件的修改,建议通过内存的方式加载 下面是通过内存加载的代码...var bitmapImage = new BitmapImage(); using (var fileStream = new FileStream("文件路径", FileMode.Open...} 通过这个方法加载的图片没有做内存的优化,也就是图片多大,占用的内存就多大 这里存在两个坑,第一个是 memoryStream 在复制之后需要移动到前面,如果没有设置,就会出现下面的代码 FileFormatException...(); bitmapImage.StreamSource = memoryStream; bitmapImage.EndInit();...} 因为图片需要读取内容,但是内容已经是空的,就没有显示 ---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/WPF

1.3K40

WPF 通过 DrawingContext DrawImage 绘制图片 裁剪图片

本文告诉大家如何通过 DrawingContext 绘制图片,同时指定绘制图片在画布的某个区域和绘制出来的图片大小,如何裁剪图片 在 WPF 中可以使用 DrawingVisual 进行底层的绘制,底层的绘制的效率是比较高的...,但是因为 WPF 的界面需要的是 UIElement 如果想要添加 DrawingVisual 还需要写一个帮助类 public class Element : UIElement {...裁剪图片 如果只是需要画出被裁剪的图片,可以使用 CroppedBitmap 进行裁剪 在 CroppedBitmap 的构造可以传入需要裁剪的图片和如何裁剪,裁剪是进行矩形的裁剪 如下面代码是裁剪矩形图片的左上角...需要需要裁剪圆形,可以依靠 PushClip 裁剪 下面代码裁剪一个圆形的范围,圆心 30x30 开始裁剪半径为 20 的范围 dc.PushClip(new EllipseGeometry...---- 本文会经常更新,请阅读原文: https://lindexi.gitee.io/post/WPF-%E9%80%9A%E8%BF%87-DrawingContext-DrawImage

2.8K20

WPF 通过 DrawingContext DrawImage 绘制图片

本文告诉大家如何通过 DrawingContext 绘制图片,同时指定绘制图片在画布的某个区域和绘制出来的图片大小,如何裁剪图片 在 WPF 中可以使用 DrawingVisual 进行底层的绘制,底层的绘制的效率是比较高的...,但是因为 WPF 的界面需要的是 UIElement 如果想要添加 DrawingVisual 还需要写一个帮助类 public class Element : UIElement {...裁剪图片 如果只是需要画出被裁剪的图片,可以使用 CroppedBitmap 进行裁剪 在 CroppedBitmap 的构造可以传入需要裁剪的图片和如何裁剪,裁剪是进行矩形的裁剪 如下面代码是裁剪矩形图片的左上角...50x50 范围 var croppedBitmap = new CroppedBitmap(bitmapImage, new Int32Rect(0, 0, 50,...Element.ContainerVisual.Children.Add(drawingVisual); } 需要需要裁剪圆形,可以依靠 PushClip 裁剪 下面代码裁剪一个圆形的范围,圆心

87020
领券