C# ImageMagick不在docker环境中工作
我正在使用.NETCore。在其中一个服务应用程序中,我使用的是ImageMagick。Nuget包Magick.NET-Q16-AnyCPU 7.14.3。当我在windows上本地运行此服务时,下面提到的last log语句返回count为1,这是正确的,而当我在docker下运行相同的服务时,last log语句返回0。我想我缺少了一些需要为docker环境做的设置。有人能建议吗C# ImageMagick不在docker环境中工作,c#,docker,service,.net-core,imagemagick,C#,Docker,Service,.net Core,Imagemagick,我正在使用.NETCore。在其中一个服务应用程序中,我使用的是ImageMagick。Nuget包Magick.NET-Q16-AnyCPU 7.14.3。当我在windows上本地运行此服务时,下面提到的last log语句返回count为1,这是正确的,而当我在docker下运行相同的服务时,last log语句返回0。我想我缺少了一些需要为docker环境做的设置。有人能建议吗 public ImageModel CreatePDFPreview(Stream stream) {
public ImageModel CreatePDFPreview(Stream stream)
{
_logger.Information("Creating PDF preview for stream of size {size}", stream.Length);
var settings = new MagickReadSettings();
settings.Density = new Density(300, 300);
using (var images = new MagickImageCollection())
{
stream.Position = 0;
images.Read(stream, settings);
_logger.Information("Images created for the stream, total {count}", images.Count);
}
}
当我在docker中运行服务时,我没有得到任何异常,只是images.Count
返回为0
正如在一篇帖子中所建议的,我在我的项目文件中添加了这个,BitNoLuck
<ItemGroup>
<PackageReference Include="Magick.NET-Q16-AnyCPU" Version="7.14.3" />
</ItemGroup>
在docker环境中,您是否错过了在本地环境中使用它的机会?
此工具是Magick.Net将PDF转换为图像所必需的。
查看更多信息。
如果我明白了,您正在阅读PDF流并试图将其转换为图像
另外,请查看关于Ghostscript的评论。
确保与Magick.NET的平台匹配(32或64位)。如果只有DLL被复制,还可以选择设置Ghostscript目录的路径,如:
MagickNET.SetGhostscriptDirectory(@“C:\MyProgram\Ghostscript”)代码>
此外,如果Ghsotscript用于商业用途,还需要提供许可证警告。您在docker环境中丢失了许可证,并且在本地环境中使用了许可证吗?
此工具是Magick.Net将PDF转换为图像所必需的。
查看更多信息。
如果我明白了,您正在阅读PDF流并试图将其转换为图像
另外,请查看关于Ghostscript的评论。
确保与Magick.NET的平台匹配(32或64位)。如果只有DLL被复制,还可以选择设置Ghostscript目录的路径,如:
MagickNET.SetGhostscriptDirectory(@“C:\MyProgram\Ghostscript”)代码>
如果Ghsotscript打算用于商业用途,则还需要警告许可证。我发现docker中部署的Magick.Net
也存在同样的问题@Nesaje关于缺少GhostScript
库的假设帮助我找到了解决方案。我使用以下命令在Dockerfile
中添加了ghostscript:
运行apt update-y&&apt install-y ghostscript
我在docker中部署的Magick.Net
也遇到了同样的问题@Nesaje关于缺少GhostScript
库的假设帮助我找到了解决方案。我使用以下命令在Dockerfile
中添加了ghostscript:
运行apt update-y&&apt install-y ghostscript