问题标签 [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 回答
1119 浏览

.net - ImageSharp - 从流中调整图像大小

我在我的 Asp.net Core 项目中使用 SixLabors 的 ImageSharp 和 ImageSharp.Web。图像大小调整适用于存储在磁盘上的图像的查询字符串。例子:

但是,如果图像是从流中提供的,ImageSharp 似乎不会调整图像大小。这是一个示例中间件,如果它符合某些条件,我将使用它从安全文件夹中传递图像:

我在 Startup.cs 中的中间件之前注册了 ImageSharp,以便它有机会拦截响应:

启动.cs

当路径不在磁盘上时,如何让 ImageSharp 根据查询字符串参数调整图像大小?

0 投票
1 回答
4185 浏览

c# - MemoryStream 抛出 InvalidOperationException 类型的异常

我希望你能帮助:)

在我的MVC.net core 2.2中,调试的时候很简单:

初始化后,它给了我一个:

现在解决方案不会崩溃或任何事情。但是,如果我检查 Visual Studio 中的“ms”,那就是它所说的。

我想做的是通过 SixLabors.ImageSharp 做:

但是保存的流是空的(调试时Capacity,Length和Position中有值。但是将其上传到azure blob存储后,大小为0)。

亲切的问候安达·亨德里克森

0 投票
1 回答
1039 浏览

c# - 使用 .Net Core 读取简单的图像元数据

我看过一些关于此的帖子,但我无法应用其中任何一个。这可能是由于文档更改。我使用了 ImageSharp 和 System.Drawings。.Net Core 不支持 System.Drawings。我发现的 ImageSharp 示例也不起作用。(我不是 C# 专家)

这就是我用来使用 Imagesharp 获取元数据的方法

问题是我的exif变量为空(我不确定我做错了什么)。是否有一个简单的代码示例可用于执行此操作?我试图在这里阅读文档https://docs.sixlabors.com/api/ImageSharp/SixLabors.ImageSharp.MetaData.Profiles.Exif.ExifProfile.html但我不知道如何使用它。任何帮助将不胜感激。

0 投票
2 回答
272 浏览

c# - 如何计算仿射矩形的顶点

我正在尝试在图像顶部绘制一个仿射矩形(带有旋转和倾斜),但不知道如何计算顶点。我没有数学或矩阵运算的背景。

我的仿射类定义如下:

我计划使用 ImageSharp 库使用类似于以下的代码绘制多边形:

编辑:这是我正在编写的 dotnet 核心 Web 服务。

0 投票
1 回答
4840 浏览

c# - 如何使用 ImageSharp(Web) 压缩/变异带有图像的流(IFormFile)

我正在尝试使用ImageSharp.Web()库压缩图像(通常在 5-30 左右)质量/大小,但我无法真正理解如何做到这一点或我在这里缺少什么。

  • 我可以重复使用相同的内存流/IFormFile 对象来保存变异的图像吗?还是我需要从当前图像对象创建一个新图像?
  • 要使用内存流,我还需要使用特定的 JpegDecoder() 吗?
  • 不确定这一行是否正确item.SaveAsJpeg(memoryStream); .
  • 也许有人可以帮助我解决逻辑,或者任何提示或技巧都会非常有帮助。谢谢!

简单的代码示例:

0 投票
1 回答
1996 浏览

c# - 将 ImageSharp.Image 转换为 ImageSharp.PixelFormats.Rgba32?

我正在学习使用 ImageSharp的教程( https://opentk.net/learn/chapter1/4-textures.html )。如何将类型“ImageSharp.Image”转换为“ImageSharp.PixelFormats.Rgba32”?

要加载图像,我正在使用

Image<Rgba32> image = Image.Load(path);

但我不断收到错误: Cannot implicitly convert type 'SixLabors.ImageSharp.Image' to 'SixLabors.ImageSharp.Image<SixLabors.ImageSharp.PixelFormats.Rgba32>'. An explicit conversion exists (are you missing a cast?).

0 投票
1 回答
529 浏览

c# - 使用 ImageSharp 调整级别和颜色

我正在尝试将 Photoshop 作业转换为由 ImageSharp 在我的 .NET Core 应用程序中完成 - 大部分都运行良好,请参见上面的示例,但我错过了两件事;

如何调整色阶(如 Photoshop 中的图像 -> 调整 -> 色阶)?

如何更改使用的颜色数量,例如 20 种颜色(如 Photoshop 中的图像 -> 模式 -> 索引颜色)?

如果可能的话,我需要在 Saturate 和 Resize 之间完成。

0 投票
0 回答
236 浏览

c# - 如何使用 ImageSharp 添加平铺/重复水印?

我想使用 ImageSharp 1.0.0-beta7 为图像添加平铺/重复水印。我需要弄清楚有多少水印以及水印显示的点数。然后使用 DrawText 函数一一绘制。

是否有任何扩展或库可以使用 ImageSharp 填充平铺/重复水印一次?

0 投票
0 回答
1201 浏览

imagesharp - 使用 ImageSharp 创建缩略图 - 性能改进?

我正在使用 ImageSharp 将一些 JPEG 文件从 4000x4000(左右)图像转换为一组不同大小的缩略图(100x100、250x250、500x500 等)。下面的代码运行良好,但想知道任何性能改进 - 调整大小和保存 3 个缩略图大约需要每张图像一秒钟,这还不错,但我想知道是否有任何优化可以让它更快?

我知道这个库可能永远无法达到 GraphicsMagick 的性能(它是原生 C++ 并且高度优化,并且可以在大约 200 毫秒内完成相同的加载 + 缩略图转换),但我喜欢它是跨平台的事实。

在 ImageSharp 中完成工作的大部分时间是加载图像 - 有没有办法给它提示以更快的方式加载 JPEG,因为很多分辨率将随着缩略图的减少而被丢弃反正?加载后,实际的调整大小和保存到磁盘似乎很快。

我还尝试使用线程池来并行转换(例如)6 个图像,这确实带来了一些改进,但我只想检查 ImageSharp 本身是否有选项或使用更改会显着加快速度 - 检查文档,但到目前为止我看不到任何明显的东西。

0 投票
1 回答
1237 浏览

c# - 如何将透明填充添加到 jpg 并将其保存为具有透明度的 png?

SixLabors ImageSharp 的文档非常有限,而且大多数 google 搜索都指向 GitHub,这不是很有帮助。

如何上传.Mutate带有透明填充的jpg并将其保存为具有透明度的png?

这是我到目前为止的代码。如果上传的图像是 png,则透明填充有效,但 jpg 得到黑色填充:

.SaveAsPng()需要一个文件流,但我有一个Image<Rgba32>和一个路径......