Magick.Net / ImageMagick-高CPU /内存使用率

时间:2019-11-19 15:57:26

标签: c# asp.net-mvc memory imagemagick cpu-usage

在服务器应用程序中使用Magick.Net时,我遇到了CPU /内存使用方面的问题。单个请求本身会增加使用量,并且随着越来越多的用户与包含多个页面的文件结合使用,它可能会使服务器停止运行。我想知道我的代码中是否缺少某些东西,是否有一种优化的方法,还是只需要限制资源。

此过程从另一个源中提取字节数组的集合,每个字节数组代表一个页面。然后将它们组合成一个文件,以字节数组形式返回。

    private static readonly MagickReadSettings _settings = new MagickReadSettings
    {
        Density = new Density(300),
        UseMonochrome = true,
        Compression = CompressionMethod.Group4,
    };

    public static byte[] CreatePdfFromImageFiles(List<ImageFile> imageFiles)
    {
        using (MagickImageCollection col = new MagickImageCollection())
        {
            for (int i = 0; i < imageFiles.Count; i++)
            {
                byte[] data = imageFiles[i].Bytes;
                MagickImage mi = new MagickImage(data, _settings)
                {
                    Format = MagickFormat.Pdf
                };
                if (imageFiles[i].Rotation != 0)
                    mi.Rotate(Convert.ToDouble(imageFiles[i].Rotation));
                col.Add(mi);
            }

            return col.ToByteArray();
        }
    }

0 个答案:

没有答案