将 ImageMagick 和 GhostScript 与 nuget 一起使用
Posted
技术标签:
【中文标题】将 ImageMagick 和 GhostScript 与 nuget 一起使用【英文标题】:Using ImageMagick and GhostScript with nuget 【发布时间】:2017-05-16 11:47:36 【问题描述】:我发现大多数关于将 ImageMagick 与 ghostscript 一起使用的文档都说只声明 ghostscript dll 的路径,例如
MagickNET.SetGhostscriptDirectory(AppDomain.CurrentDomain.BaseDirectory);
然后使用 MagickImage 像:
using (var image = new MagickImage(streamToConvert))
image.Write(outputStream);
现在我有一个 azure 站点,无法创建这样的路径。
我要导入 Visual Studio 中的 Ghostscript.NET nuget 包,但我不知道如何继续,即向 MagickImage 声明在哪里可以找到 Ghostscript。我该怎么做?
【问题讨论】:
【参考方案1】:只需将 Ghostscript dll 复制到您的项目中并使用“始终复制”设置。然后,当您发布时,您的 Ghostscript 文件将最终保存在正确的文件夹中。
现在,在 Azure 中,事情并不像您在桌面上开发时所期望的那样,所以在继续之前先看看这个。 How to store temp files in Azure
【讨论】:
您还需要根据 AGPL v3 检查您的使用情况,以确保您的使用与该许可证兼容。【参考方案2】:最后导入 nuget 包 Ghostscript.NET 并使用 Ghostscript 方法创建图像的“屏幕截图”,然后将其放入 MagickImage。
_lastInstalledVersion =
GhostscriptVersionInfo.GetLastInstalledVersion(
GhostscriptLicense.GPL | GhostscriptLicense.AFPL,
GhostscriptLicense.GPL);
_rasterizer = new GhostscriptRasterizer();
_rasterizer.Open(streamToConvert, _lastInstalledVersion, true);
ConvertWithGhostscript(streamToConvert, ghostStream);
ConvertWithImageMagick(ghostStream, outputStream, image.Extension);
image.Write(outputStream);
【讨论】:
以上是关于将 ImageMagick 和 GhostScript 与 nuget 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
ImageMagick 中 GhostScript 的文件路径
无法使用 ImageMagick 和 GhostScript 将 PDF 转换为 JPG
我应该将哪些文件复制到我的项目中以使用 ImageMagick?或如何在 Windows 上使用 MinGW 编译 ImageMagick?