Изменение размера изображения в потоке памяти обеспечивает неправильные FinalHeight и FinalWidth - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь изменить размер изображения, используя параметр FitMode.Max, и мне нужно сохранить новые размеры изображения, поскольку я сохраняю изображение в своей базе данных.

 public ImageResizeResponse Resize(Stream stream, int maxHeight = 1024, int maxWidth = 1024)
    {

        var response = new ImageResizeResponse();

        using (var ms = new MemoryStream())
        {

            var job = new ImageJob(stream, ms, new Instructions
            {
                Mode = FitMode.Max,
                Scale = ScaleMode.Both,
                JpegQuality = 80,
                OutputFormat = OutputFormat.Jpeg,
                Cache = ServerCacheMode.No,
                Height = maxHeight,
                Width = maxWidth
            });

            job.Build();

            response.FileContent = ms.ToArray();
            response.FinalHeight = job.FinalHeight.GetValueOrDefault();
            response.FinalWidth = job.FinalWidth.GetValueOrDefault();

            return response;

        }

    }

Проблема заключается в том, что когдая изменяю размер изображения меньше 1024x1024, FinalHeight и FinalWidth предоставляют мне размеры 1024x1024.

Я бы ожидал, что параметры будут 25x25, что соответствует размеру моего исходного изображения.Как мне это сделать?

1 Ответ

0 голосов
/ 20 ноября 2018

Как оказалось, я настроил инструкции, используя ScaleMode.Both, и если вы используете это в сочетании с настройкой FitMode.Max, он все равно будет масштабировать изображение до настроенных высоты и ширины.

...