ImageMagick在docker环境中不起作用

问题描述 投票:1回答:1

我正在使用.Net Core。在服务应用程序之一中,我正在使用ImageMagick。 Nuget软件包Magick.NET-Q16-AnyCPU 7.14.3。当我在Windows上本地运行此服务时,下面提到的最后一条日志语句返回count为1,这是正确的,而当我在docker下运行相同的服务时,最后一条日志语句返回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

根据其中一篇文章的建议,我将此添加到了我的项目文件中,很幸运。

<ItemGroup>    
    <PackageReference Include="Magick.NET-Q16-AnyCPU" Version="7.14.3" />
</ItemGroup>
c# docker service .net-core imagemagick
1个回答
0
投票

[是否有可能在docker环境中丢失GhostScript而在本地环境中丢失它?Magick.Net需要此工具才能将PDF转换为图像。检查Convert PDF docs以获取更多信息。据我了解,您正在阅读PDF流,并尝试将其转换为图像?

也请在Magick.Net github上查看有关Ghostscript的评论。确保匹配您的Magick.NET平台(32或64位)。如果仅复制dll,还有一个选项可以设置Ghostscript目录的路径:MagickNET.SetGhostscriptDirectory(@"C:\MyProgram\Ghostscript");如果Ghsotscript用于商业用途,也有关于许可证的警告。

© www.soinside.com 2019 - 2024. All rights reserved.