问题标签 [imagesharp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
101 浏览

asp.net-core - ServiceStack Nuxt.js SPA 和 ImageSharp.Web 集成

我正在将我的项目从 Asp.Net MVC 迁移到 ServiceStack Nuxt.js SPA,而我在 MVC 上使用的一件事是 ImageProcessor.Web 以动态操作图像

我现在正在尝试在 ServiceStack Nuxt.js 模板上将 ImageSharp.Web 与 Azure blob 一起使用。

我在 ConfigureServices 中注册了服务

以及在配置中

但我无法打开图像

http://localhost:3000/blob/media/picture.jpg

在这种情况下,如何启用 ImageSharp.Web 来拦截对 /blob 路由的调用?

是否可以使用 Azure blob 进行缓存,这样就不会在本地存储任何文件?

提前致谢

0 投票
0 回答
69 浏览

c# - 我无法使用机器人在不和谐频道上显示图像

我想使用 Imagesharp 框架将图像输出到通道,或者我是这个框架的新手。最初,我收到此错误“无法从”SixLabors.ImageSharp.Image“转换为”字符串”。我试图通过编写字符串 a = $ “{zx}”来解决问题;等待回复Async(a) 并没有不行。

0 投票
2 回答
2468 浏览

c# - 如何在保留 mimetype 的同时使用 ImageSharp 从磁盘加载图像并保存到流

我有一堆图像存储在磁盘上,图像的 mimetype 存储在数据库中。如果我想将图像保存到磁盘,我可以使用Image.Save(string)(或异步版本)而无需知道图像的 MimeType。

但是,如果我想保存到流(例如,Response.Body),那么我必须使用Image.Save(Stream, IImageEncoder).

如何获得IImageEncoder我需要保存到流中的内容(而不只是声明“我的所有图像都是 png/jpeg/bmp”并使用 eg JpegEncoder)?

0 投票
1 回答
1509 浏览

c# - SixLabors ImageSharp 生成巨大的图像文件

我使用下面的代码将 JPG 文件的大小调整为 200x240 像素。随附的示例文件大小为 900x600 像素,只有 84 kb。但是,当我使用 ImageSharp 保存调整大小的文件时,生成的图像为 435 kb!为什么较小的图像具有较大的文件大小?

我注意到原始图像的位深度是 24 位,但 ImageSharp 以 32 位存储它。我怎样才能减少这种情况?

在此处输入图像描述

调整大小的图像:

在此处输入图像描述

0 投票
1 回答
1200 浏览

c# - 是否可以使用 SixLabors.ImageSharp 库转换图像格式?

我一直在研究这个库,目的是在 C# 中制作图像处理管道。我希望它能够接收 .png 图像并将其转换为 .jpeg。但是我还没有找到使用这个库的方法。甚至可能吗?有没有人能够成功地做到这一点?

这是我最好的镜头:

结果是图像被简单地保存为 .png。我是处理图像的新手,所以我可能会遗漏一些东西。

0 投票
1 回答
535 浏览

c# - 使用 ImageSharp 将包含 Bgra32 的传入缓冲区转换为 ImageSharp 图像的最佳方法是什么图片?

PixelFormats.Bgra32从 UAP 和 WPF 获取图像,我想知道将它们与 SixLabors.ImageSharpImage<Rgba32>图像相互转换的最快方法。在我使用复制缓冲区后,是否有一些神奇的“突变”可以翻转像素字节TryGetSinglePixelSpan

0 投票
1 回答
851 浏览

c# - 使用 ImageSharp 获取图像中特定像素的颜色数据?

以前发过,但是因为写错了,关了。我正在尝试获取图像中单个像素的颜色。我也在尝试从外部源加载图像 - 在这种情况下,假设我正在尝试从尺寸为 400x400px 的“abcd.jpg”(或 png 在这里并不重要)中获取颜色。我想要获得的颜色是 200x200 的像素。我根据以前的答案尝试的是:

但这不起作用,每当我尝试使用 TPixel 或 Rgba32 时,它只会告诉我“变量图像不能与类型参数一起使用”和“找不到类型或命名空间 TPixel”。有人请帮忙,老实说,我不在乎我得到颜色的格式,我只需要以某种方式获取颜色数据。提前致谢。

0 投票
1 回答
243 浏览

asp.net-core-mvc - 我可以将 ImageSharp 与 .Net Core 一起使用来截取网络浏览器的屏幕截图吗

我有一个 Asp.Net Core 2.2 MVC Web 应用程序。它设置为多租户并在 Azure 上运行。

为了改进支持选项,我想增加用户创建浏览器窗口屏幕截图的可能性,然后将其附加到发送到支持台的电子邮件中。(发送电子邮件已经是解决方案的一部分)

由于应用程序托管在云中,我不知道用户正在/将使用什么设备,它可以是 PC(Windows、Mac ...)或平板电脑(智能手机在技术上是可行的,但由于应用程序的性质非常不可能)所以它不应该与浏览器或操作系统绑定。

在四处搜索后,我发现了跨平台的 ImageSharp,但我没有找到任何关于制作屏幕截图的可能性的参考。

有人知道这是否可能吗?如果是这样,一个简短的代码示例会很好。

0 投票
1 回答
361 浏览

c# - 如何防止 ImageSharp Web 调整为特定大小?

我正在使用 ImageSharp.Web 来调整我的 ASP.NET Core 5.0 网站上的图像大小。

为了防止 DDoS(分布式拒绝服务攻击),我想限制 ImageSharp.Web 也可​​以调整大小。

例如,我有一个原始大小为 800x400 (100kb) 的图像,我正在使用以下方法调整其大小:

问题是,如果一个邪恶的用户决定使用以下方式请求图像:

如果该用户请求此图像具有“高编号”像素大小(7000,7001,7002...8000} 说 10,000 次,则由于内存耗尽和带宽使用,服务器将变得无响应。

  1. 如何限制 ImageSharp.Web 不将图像调整为高于其原始大小?
  2. 如何将 ImageSharp.Web 限制为仅将图像大小调整为 300x300 和 300x600?

我在 ImageSharp.Web ( https://docs.sixlabors.com/articles/imagesharp.web/gettingstarted.html )中没有看到任何可配置的选项。

我的startup.cs

0 投票
1 回答
69 浏览

azure - 为什么我的 ASP.NET Core 应用程序中的图像在我的本地环境中被覆盖,但在我上传到 Azure 时却没有?

在我的 ASP.NET Core 3.1 Web 应用程序中,我允许用户上传存储在应用程序本身的本地目录中的图像。虽然,使用 Azure 上的 blob 存储可以更好地实现这一点,但这个特定项目要求将它们存储在本地,所以我必须使用它:

当用户上传图像时,图像的处理由 SixLabors 的 ImageSharp 处理,其中图像被调整几次以供跨平台使用,并保存到由 Id 分隔的相对目录中。

问题

我面临的问题是,虽然当我在本地测试我的应用程序时这个过程有效,但当我将我的应用程序部署到 Azure 并且没有报告任何类型的错误时它不起作用。当我试图弄清楚发生了什么时,这让我感到兴奋和干燥。

假设

由于这个问题的性质和这些图像的位置,我只能假设它是天蓝色的,出于安全原因防止覆盖目录中的图像,或者它可能是 ImageSharp 库本身。

重要的是要注意,当目录不存在时,实际创建产品和添加图像,因此,一个新产品可以完美地工作。只有当你试图覆盖它不起作用的图像时。

这是我的代码,我删除了所有非必要元素,留下了图像处理特定的代码。

编辑视图)

编辑(控制器)

处理图像(流)

如您所见,有一个大小数组,其中定义了我们需要的大小,然后循环处理。我们创建文件名并保存为 jpg。高度设置为 0,以便在定义宽度然后重置流时自动设置它。

Products.cs(模型)

所以,问题仍然存在,为什么我的应用程序在 Azure 中运行后不能覆盖我的图像?是 Azure 安全问题,还是 ImageSharp 库问题之类的简单问题,还是我的应用程序没有正确执行此操作?