Как решить проблему с памятью?

Подскажите, пожалуйста, как мне решить проблему с памятью. В общем, я занимаюсь конвертированием содержимого docx файла в html, дошёл до картинок и тут возникла проблема, мне необходимо узнать формат изображения, для этого я юзаю MagickImage. Из docx файла можно получить FileStream картинки, что я и делаю. Далее я вызываю класс ImageService и его метод ProcessImage и далее вызываю метод GetFormatImage и вот тут возникают проблемы с памятью, при вызове этого метода затраты памяти достигают 5 гб

public class ImageService : IImageService
{
    private readonly string _resourcesBasePath;

    private readonly IImageProcessor _imageProcessor;

    public ImageService(IImageProcessor imageProcessor, string resourcesBasePath)
    {
        _imageProcessor = imageProcessor ??
                          throw new ArgumentNullException(nameof(imageProcessor));

        _resourcesBasePath = resourcesBasePath;
    }

    public void ProcessImage(Image image)
    {
        if (image.Id != null)
        {
            using var stream = image.FileStream;

            if (stream != null)
            {
                string formatFile = _imageProcessor.GetFormatImage(stream);

                string fileName = Guid.NewGuid().ToString();

                fileName += formatFile;

                image.FullPath = $"{_resourcesBasePath}\\{fileName}";

                image.FileName = fileName;
            }
        }
    }
}

public class ImageMagickProcessor : IImageProcessor
{
    public string GetFormatImage(Stream stream)
    {
        using MemoryStream memoryStream = new();
        
        stream.CopyTo(memoryStream);

        memoryStream.Seek(0, SeekOrigin.Begin);

        using MagickImage magickImage = new(memoryStream);

        memoryStream.Seek(0, SeekOrigin.Begin);

        return $".{magickImage.Format.ToString().ToLowerInvariant()}";
    }

    public Stream ResizeImage(Stream imageStream, double width, double height)
    {
        Stream newImageStream = new MemoryStream();

        newImageStream.Seek(0, SeekOrigin.Begin);

        using (var image = new MagickImage(imageStream))
        {
            image.Resize((int)width, (int)height);

            image.Write(newImageStream);

            newImageStream.Seek(0, SeekOrigin.Begin);

            return newImageStream;
        }
    }
}

В методе GetFormatImage при инициализации MagickImage возникает эта проблема


Ответы (0 шт):