Как решить проблему с памятью?
Подскажите, пожалуйста, как мне решить проблему с памятью. В общем, я занимаюсь конвертированием содержимого 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 возникает эта проблема