首页 > 解决方案 > 在 Blazor 客户端应用程序中加载图像

问题描述

我有一个 Blazor 客户端应用程序,我正在尝试加载嵌入式图像:

var stream = Assembly
    .GetExecutingAssembly()
    .GetManifestResourceStream("myimg.jpg");

//System.Drawing.Graphics.FromImage(null);
//var bmp = new Bitmap(stream);

我遇到的问题是,注释的代码行都不能在 Blazor 应用程序中使用(它们在浏览器中不起作用)。有没有解决的办法?

标签: c#blazorembedded-resourcesystem.drawing

解决方案


System.Drawing.Graphics命名空间不是 .NET Core 3.1 或 NET 5 的一部分。

它最初位于 .NET Framework 中(可能是您从中获得示例代码的地方)——这是因为它基于 Windows GDI 系统,而 .NET Core 是跨平台的,不能依赖 GDI 的存在(例如 Mac/Linux) .

您可以使用一些库,因为有一个提供此功能的 NUGET 包:https ://www.nuget.org/packages/System.Drawing.Common

然而,它并不总是即插即用:可能存在特定于平台的要求,请参阅https://www.hanselman.com/blog/how-do-you-use-systemdrawing-in-net-core以获得更多帮助。


推荐阅读