将 ImageMagick 和 GhostScript 与 nuget 一起使用
Using ImageMagick and GhostScript with nuget
我发现大多数关于将 ImageMagick 与 ghostscript 一起使用的文档都说只声明 ghostscript dll 的路径,例如
MagickNET.SetGhostscriptDirectory(AppDomain.CurrentDomain.BaseDirectory);
然后像这样使用 MagickImage:
using (var image = new MagickImage(streamToConvert))
{
image.Write(outputStream);
}
现在我有一个 Azure 站点,无法创建这样的路径。
我要导入
Ghostscript.NET Visual Studio 中的 nuget 包但后来我不知道如何继续,即向 MagickImage 声明在哪里可以找到 Ghostscript。我该怎么做?
只需将 Ghostscript dll 复制到您的项目中并使用 "copy always" 设置。然后,当您发布时,您的 Ghostscript 文件将最终位于正确的文件夹中。
现在,在 Azure 中,事情并不像您在桌面上开发时所期望的那样,所以在继续之前先看看这个。 How to store temp files in Azure
最终导入了 nuget 包 Ghostscript.NET 并使用 Ghostscript 方法创建了一个 "screenshot" 图像然后将其放入 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 一起使用的文档都说只声明 ghostscript dll 的路径,例如
MagickNET.SetGhostscriptDirectory(AppDomain.CurrentDomain.BaseDirectory);
然后像这样使用 MagickImage:
using (var image = new MagickImage(streamToConvert))
{
image.Write(outputStream);
}
现在我有一个 Azure 站点,无法创建这样的路径。
我要导入 Ghostscript.NET Visual Studio 中的 nuget 包但后来我不知道如何继续,即向 MagickImage 声明在哪里可以找到 Ghostscript。我该怎么做?
只需将 Ghostscript dll 复制到您的项目中并使用 "copy always" 设置。然后,当您发布时,您的 Ghostscript 文件将最终位于正确的文件夹中。
现在,在 Azure 中,事情并不像您在桌面上开发时所期望的那样,所以在继续之前先看看这个。 How to store temp files in Azure
最终导入了 nuget 包 Ghostscript.NET 并使用 Ghostscript 方法创建了一个 "screenshot" 图像然后将其放入 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);