问题标签 [magicknet]
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.
c# - 如何使用 Magick.Net 更改图像中每个像素的颜色
我是 Magick.Net 的新手。我试图改变图像中每个像素的颜色,但新图像没有变化。这是我的代码。谁能告诉我发生了什么事?非常感谢。
c# - 重新采样 PixelCacheAllocationFailed 时的 MagickNET 异常
我在 ASP .NET 应用程序中使用 MagickNET。通常它可以工作,但有时使用某些文件(.jpg,.png)当我用另一个 DPI 重新采样图片时收到异常
ImageMagick.MagickResourceLimitErrorException: iisexpress.exe: PixelCacheAllocationFailed `D:\Data\IT Tools and Applications\Code\Zola\ZolaIntranet\Upload\Temp\4ffe031b-b559-4b5c-8f88-e1a5b8e4fbe7.jpg'@error/cache.c/OpenPixelCache /3369
这里发生异常的行:
当我尝试使用较小的 DPI(72 或更少)时,我遇到了另一个异常:
ImageMagick.MagickCacheErrorException: iisexpress.exe: UnableToExtendCache 'D:\Data\IT Tools and Applications\Code\Zola\ZolaIntranet\Upload\Temp\42458df9-f7ee-4e4b-abfd-628317b4b7eb.jpg': 无效参数@错误/缓存。 c/OpenPixelCache/3536 ---> ImageMagick.MagickCacheErrorException: iisexpress.exe: UnableToExtendCache
有人可以有一个想法吗?
c# - 通过通用处理程序创建动态图像 (.gif)
我已经使用 Magick.Net 库创建了一个算法来显示一个小时间计数器,但是当我通过通用处理程序请求 gif 资源时返回一个静态图像,但是当我检查名为:“test.gif”的测试文件时动态图像完美。为了更好地解释我,这是代码:
所以我想知道为什么通用处理程序的响应不是 .gif 动态的,而是静态结果。
caching - 将 MagickImage 对象放入缓存的最佳方法
我在 AWS S3 上有两个 Web 服务器和许多图像。我从 S3 加载这些图像作为内存流并将该流转换为位图。然后我从该位图创建一个 MagickImage 对象,然后在其上应用我的 MagickImage 命令。
这些图像是应用程序在一天中多次使用它们的模板,可能在一小时内使用 60 次或更多,甚至数十次。将位图转换为,甚至直接将流/内存流转换为 MagickImage 是一个繁重的过程,需要 cpu 时间。
现在我已将位图放入缓存并删除对 S3 的调用;我从缓存中获取内存流并将其转换为位图。这有很大帮助,但还不够,我的系统仍然受到性能的影响。
现在的问题是:当我创建 MagickImage 对象时,我该如何保留它?我必须找到一种方法来删除将 Bitmap 转换为 MagickImage。
我知道(也许我错了)我有两种方法可以保留它:1)将 MagickImage 对象放入缓存中,这不是一个好主意,因为我使用的是进程外缓存(因为我们有两个 Web 服务器)我必须将 MagickImage 对象转换为 memoryStream,然后当我想从缓存中加载它时,我必须再次将其转换回 MagickImage,这太慢了。2) 我可以将 MagickImage 保存为“.mpc”文件,但如果 MagickImage 对象是在同一台机器上创建的,这些文件才有效。对于两个 Web 服务器,这是无效的。
magicknet - magick.net 版本 7 中的 Copyopacity 是什么
我正在使用 Magick.net 对用户图片进行一些更改。为了切出图片的特定部分,我使用了 compositoperator.Copyocity 的复合材料,它工作得很好。然后我升级到版本 7,现在我必须使用其他合成器,我发现 DstIn 类似于 copyOpacity 并且正在完成我的工作。但问题是,当我应用该命令时,蒙版图片中的像素(带有一些透明区域的黑色辅助图片,透明的是我想要剪切的区域)并且不是 100% 黑色转移到最后一张照片,所以我在最后一张照片上有一条灰色和幽灵般的线条。我想也许我必须编辑蒙版图片并删除所有不是 100% 黑色的像素,但问题是我必须根据用户上传的文件调整蒙版的大小。
我的问题:
如何剪掉用户图片的一部分并得到一张图片作为我的结果,它有剪掉的部分,其余部分是透明的?我正在使用的技术和框架:.Net Mvc c# 和 Magick.net 版本 7
c# - c#: 使用 MagickImage 更改图像 DPI 并调整图像大小
我正在使用 MagickImage 更改图像的 Dpi,但它不起作用
或者如果这不起作用
有没有办法像Photoshop一样调整图像大小
我怎么能以编程方式做到这一点。谢谢你
svg - 如何使用 MagickNet 从流中读取 SVG 文件
我的应用程序允许用户上传图像并将它们发送到服务,然后将其转换为另一种格式并发回。我们正在添加对 SVG 文件格式的支持,我遇到了从字节数组读取文件的问题。
问题是,当我使用 SVG Stream 对象初始化 MagickImageInfo 对象时,出现以下错误:
“此图像格式没有解码委托''@error/blob.c/BlobToImage/355”
如果我改为创建一个 MagickImage 对象并为它提供一个 MagickReadSettings 实例,我在其中将 Format 显式设置为 SVG,我就玩弄了它,并且能够克服这个错误。
核心问题是 MagickImage 代码需要提示它是 SVG 时的文件类型。对于其他文件类型,它似乎能够推断出它是什么类型的文件。然而,虽然我能够为 MagickImage 类提供文件的格式,但 MagickImageInfo 类没有任何参数,我可以给它以提示文件类型。
一种可能的解决方案是将文件写入磁盘,然后让 MagickImageInfo 类从磁盘读取文件,但我真的不想这样做,因为它增加了服务的复杂性并使其依赖于磁盘写访问。
相关代码:
工作代码:
不工作的代码:
c# - 使用 Magick.NET 将图像克隆为更大的图像而不调整大小
我在讨论\论坛/StackOverflow/官方文档中进行了一些搜索,但我找不到太多关于如何实现我正在尝试的信息。大多数官方文档都涵盖了 ImageMagick 的命令行版本。
我将描述我正在尝试做的事情:我加载了一张图像,我想将其粘贴到更大的图像中。例如:我加载的图像宽度为 9920,高度为 7085。我想把它放在一个更大的中间(10594 宽,7387 高)。我已经准备好所有边界计算([较大的宽度 - 原始宽度/ 2],高度也是如此)。
但我不知道如何使用 MagickImage 来做到这一点。这是我得到的最大值:
这是我得到的最大值。为了实现这一点,我使用了以下帖子:
而且我没有使用 GDI+,因为我将始终使用更大的 TIFF 文件(大分辨率),并且当 GDI+ 无法处理所有内容(我加载了三个图像)时,它往往会抛出异常(参数无效,内存不足)具有这样的分辨率,并且内存不足)。
任何帮助将不胜感激,谢谢。巴勃罗。
c# - 使用 GhostScript 将 eps 转换为 svg 的 Magic.Net 在 Illustrator 中为空白
我在 c# 中有一个非常小的应用程序,应该转换.eps
为.svg
.
Using Magic.Net-Q16-AnyCPU
作为一个nuget
也安装在 windows GhostScript 上gs952w32.exe
。
转换功能:
图像被转换,我也可以通过一些可以读取 svg 的浏览器网站打开它。但是当我尝试用 illustrator 打开它时,它会显示一个错误
"Could not find the linked file ''. Choose replace to select another file or Ignore to leave the link unchanged."
并且打开后图像是空的。