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

从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.7K20

    WPF 通过位处理合并图片

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

    75110

    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

    3K20

    【愚公系列】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对象定义的复杂图形

    94800

    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 裁剪 下面代码裁剪一个圆形的范围,从圆心

    1.2K20

    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.5K20

    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 位的对应

    56920

    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.6K40
    领券