将 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 不会将 .png 转换为 .jpg

无法使用 ImageMagick 和 GhostScript 将 PDF 转换为 JPG

我应该将哪些文件复制到我的项目中以使用 ImageMagick?或如何在 Windows 上使用 MinGW 编译 ImageMagick?

golang 如何将imagemagick 和golang 打包到docker 环境中

imagemagick 将 RGB PNG 转换为 CMYK PDF