在 Blazor 客户端应用程序中加载图像
Posted
技术标签:
【中文标题】在 Blazor 客户端应用程序中加载图像【英文标题】:Loading an image in a Blazor Client-side App 【发布时间】:2021-11-14 09:18:18 【问题描述】:我有一个 Blazor 客户端应用程序,我正在尝试加载嵌入的图像:
var stream = Assembly
.GetExecutingAssembly()
.GetManifestResourceStream("myimg.jpg");
//System.Drawing.Graphics.FromImage(null);
//var bmp = new Bitmap(stream);
我遇到的问题是,注释的代码行都不能在 Blazor 应用程序中使用(它们在浏览器中不起作用)。有没有办法解决这个问题?
【问题讨论】:
你想对图像做什么? 我要裁剪,然后显示到屏幕上 【参考方案1】: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 以获取更多帮助。
【讨论】:
我使用的实际上是 System.Drawing.Common。我收到一条警告,告诉我“浏览器”不支持它以上是关于在 Blazor 客户端应用程序中加载图像的主要内容,如果未能解决你的问题,请参考以下文章
使用 require 在 Angular 11 应用程序中加载图像