C# ImageMagick不在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) {

我正在使用.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)
{
    _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