问题标签 [magick.net]

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 投票
2 回答
474 浏览

asp.net - 将 PDF 转换为图像时性能糟糕

我已经分配了将单个 PDF 页面转换为 JPEG 的任务。

使用 Magick.NET,我能够在运行项目的任何本地计算机上获得非常不错的转换速度。

我的实时环境在 Amazon 的 Elastic Beanstalk 下,使用 EC2 实例。它是一个 t1.micro 实例,具有 615MB RAM 和约 1.83GHz 的 CPU。

部署我的项目时,我在我的计算机和服务器上都使用Magick.NET x86 Q16,Ghostscript x86和。Visual C++ Redistributable VS2012 x86

该代码从 下载 PDFS3 Bucket并将其保存在本地,因此转换也发生在本地。

这就是它开始变得奇怪的地方。

测试转换 #1 的时间(我还向服务器打开了一个 RDP 窗口进行监控):

  • 点击我漂亮闪亮的Split to images按钮
  • 下载几乎在瞬间完成
  • image.Read(),它读取 PDF 需要很长时间才能完成(有时在 2-8 分钟之间),并且每次,我的浏览器都会以空白(白色)页面响应。
  • 我将浏览器的白页保持原样,然后继续监视服务器。在发生转换的文件夹中,服务器缓慢地开始写入文件夹中的每个 60KB 图像(对于大小为 1.7MB 的 6 页 PDF,整个过程可能需要 5-15 分钟,服务器在那个时候以及稍晚一点)

测试转换#2:

  • 用 x64 版本替换了上面描述中提到的所有内容。一样。

测试转换#3/#4:

  • 将 Magick.NET x86/x64 Q16替换为 Magick.NET x86/x64 Q8

又是同样的事情。

在每次转换期间,CPU 为 100%,内存约为 70%

我的代码如下:

0 投票
1 回答
1029 浏览

c# - 'ImageMagick.Types' 的类型初始化程序引发异常

我刚刚从 nuget 和 codeplex 安装了一个 Magick.net。我只想编写一个示例应用程序,通过降低图像文件的质量和 DPI 来压缩图像文件。

根据 codeplex 提供的小文档,我编写了以下代码段。

它给了我一个错误,“'ImageMagick.Types' 的类型初始化程序引发了异常”
请任何人帮助我。这里有什么问题?

0 投票
1 回答
2721 浏览

c# - 移除图像背景

我正在尝试使用 Magick.Net 删除此图像的绿色背景,但我有点卡住了。

我尝试了以下方法:

test.jpg但我看不出和之间有任何区别test_result.jpg。我为低和高选择的颜色可能不是最佳选择,但我的策略是使用颜色选择器从图像中选择“浅绿色”和“深绿色”(缺乏其他知识)。

我找不到任何有关如何使用该TransparentChroma方法的有用示例,因此我可能在这里走错了路。

测试图像

0 投票
3 回答
11884 浏览

c# - 无法在 mvc 应用程序上加载文件或程序集“Magick.NET-x64”问题

我在 mvc3 Web 应用程序中使用 Magick.net 库,这些是我所做的步骤

我的项目以 AnyCPU 为目标,我的机器是 64 位
将 Magick.NET-x64.dll 的引用添加到项目中。从此处http://www.microsoft.com/en-us/download/details.aspx?id=30679为 Visual Studio 2012 Update 4 安装了 Visual C++ Redistributable 在 机器上安装了适用于 Windows(64 位)的 Ghostscript 9.14 添加

在 web.config 文件上

项目已成功重建 [所有 dll 也都在 bin 文件夹中],但在运行时出现异常

无法加载文件或程序集“Magick.NET-x64”或其依赖项之一。试图加载格式不正确的程序。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取更多信息 > 关于错误及其源自代码的位置。

异常详细信息: System.BadImageFormatException:无法加载文件或程序集“Magick.NET-x64”或其依赖项之一。> 试图加载格式不正确的程序。

源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关 > 异常的来源和位置的信息。

程序集加载跟踪:以下信息有助于确定无法加载程序集“Magick.NET-x64”的原因。

0 投票
0 回答
432 浏览

c# - WCF 服务中的 Magick.NET x64 - ThreadAbortException: Thead 被中止

我有一个 WCF 服务,我在某个方法中调用另一个方法,但是使用 Task.StartNew(.... 之后,WCF 方法返回并且客户端失去连接。

一切都很好,到目前为止。

在另一个线程的这个方法中,我使用 ImageMagick.NET x64 来调整 jpg 图像的大小。最后一次使用该服务时,我得到了一个带有以下 StackTrace 的 ThreadAbortException:

另一个也出现了:

所以一次是 Image.Resize 方法,另一次是 Image.Write 方法。

但大多数时候,代码运行得很好。

我的问题:这些某些方法是否明显导致异常,然后导致 ThreadAbortException?或者是否有可能,来自 IIS / WFF 的预期来自 IIS / WFF,它中止了操作(例如应用程序池回收、执行超时过期等?我应该从哪里开始调查?

更新:我 StartNew 没有等待,所以调用将很快完成,只有任务正在运行(或应该),直到他完成哈希,代码:

就是现在...

更新二 - 错误出现的代码片段和服务内容

这是调用 ExecuteAction 的代码:

此致。

0 投票
2 回答
3740 浏览

c# - 带有 SVG 的 C# Magick.Net“没有此图像格式的解码委托”

我安装了 ImageMagick-6.8.9-Q16 并且可以成功运行convert test.svg test.pdf并获得有效的 pdf 输出。

在我的项目中,我安装了 Magick.NET-Q16-x86 版本 7.0.0.003,我可以使用它成功转换其他格式。

但是,当我运行以下代码时,我收到“iisexpress.exe:此图像格式没有解码委托”错误:

有任何想法吗?

0 投票
1 回答
2708 浏览

c# - ImageMagick.NET - 更快的性能

我使用 C# 的 ImageMagick.NET 库,我想从 .PDF 文档的每一页中获取一些信息。这是我当前的代码:

但在我看来,性能真的很慢。10 个 PDF - 703 页的文件需要 4 分钟。是一种更快获得它的方法吗?

0 投票
3 回答
4769 浏览

c# - 使用 Magick.Net 在使用文本注释图像时应用背景颜色

我正在使用 C# 和Magick.Net对图像进行注释,如下所示:

注释有效,但文本并不总是易于阅读,因为它可以与图像融合。

ImageMagick 手册有一个完整的部分建议解决方案

  • 概述标签

    /li>
  • 绘制暗盒

    /li>

(只有在没有其他方法的情况下我才会使用此方法,因为它需要明确定义矩形的宽度和高度。)

  • 底色框

    /li>
  • 复合标签

    /li>
  • 自动调整大小的字幕

    /li>
  • 花式标签

    /li>

以上任何一种方法对我来说都可以。但是,我似乎找不到 .Net API 中公开的所需功能。例如,我在调用 Annotate 之前尝试设置 BackgroundColor。这没有产生任何效果:

我想要一些关于如何使用 Magick.Net 实现任何增强注释文本可读性的方法的指示。

0 投票
1 回答
1426 浏览

c# - 为 Magick .NET 集合中的图像设置选项

我正在尝试减少我正在导出的 GIF 动画的文件大小,我已经阅读了如何做到这一点。另一个线程建议降低质量,添加压缩并稍微模糊图片,这就是我正在尝试做的事情:

代码运行,但设置似乎被忽略,而设置AnimationDelay相同的方式确实有效。我通过检查输出的质量和文件大小来验证它,这似乎与我不使用任何设置时相同。即使设置quality为 20,也会得到相同的结果。

我还尝试使用QuantizeSettings我将值传递255colors属性的位置。这似乎锁定了我的应用程序,同时使用了 50% 的 CPU。(我在强行关闭应用程序前大约 5 分钟给了它)

我的应用程序处理大约 950 kB 的 .GIF 并将其转换为 5.3 mB,这是不可接受的。(免责声明:我在 .GIF 中添加了大约 20+- 帧并在其上绘制了一个叠加层。)

有使用 Magick .NET 库经验的人可以告诉我我是否做错了什么,并指出我做这件事的正确方向吗?我无法找到应用这些设置的不同方式。

0 投票
1 回答
3606 浏览

c# - 如何使用 Magick.NET 或 GraphicsMagick.NET 创建图像图块

我在 CLI 上使用 ImageMagick,如下所示:

创建我的输入图像的平铺版本。但我想用 GraphicsMagick.NET 或 Magick.NET 来做,而不是使用命令行。我遇到的问题是 GM.NET 或 IM.NET 似乎都不能正确支持“+repage”和“+adjoin”。相反,两者都只生成一个输出图像。

我在 C# 中尝试了以下代码,但没有成功。

GraphicsMagick.NET 测试

ImageMagick.NET 测试

我还尝试了 MSL 来生成我的图像的平铺版本,但 MSL 似乎也不支持这一点,MSL 中完全缺少 adjoin 和 repage 。