.NET ImageSharp Crop and Resize выдает ошибкуC#

Место общения программистов C#
Ответить
Anonymous
 .NET ImageSharp Crop and Resize выдает ошибку

Сообщение Anonymous »

Я конвертирую старый код в .NET8 и использую библиотеку ImageSharp (3.1.4). Он обрабатывает загруженное изображение, центрирует его, обрезает, изменяет размер и сохраняет файл. Вот мой код:

Код: Выделить всё

    public void ResizeCropAndSaveImage(IFormFile file, int cropWidth, int cropHeight, string filePath, string fileName)
{
using (Image image = Image.Load(file.OpenReadStream()))
{
//get the shorter side & scale percentages
var ratio = Math.Min((float)image.Width / cropWidth, (float)image.Height / cropHeight);
var scaleH = Convert.ToInt32(cropHeight * ratio);
var scaleW = Convert.ToInt32(cropWidth * ratio);

//set crop from center coordinates
var posX = (image.Width - scaleW) / 2;
var posY = (image.Height - scaleH) / 2;

var resizedImage = image.Clone(i => i.Resize(cropWidth, cropHeight).Crop(new Rectangle(posX, posY, scaleW, scaleH)));

Directory.CreateDirectory(filePath);
resizedImage.Save(Path.Combine(filePath, fileName), new JpegEncoder());
}
}
Но выдает следующую ошибку:

Код: Выделить всё

System.ArgumentException: Crop rectangle should be smaller than the source bounds. (Parameter 'cropRectangle')
Ошибка кажется понятной, но новый Rectangle() меньше исходных изображений, поэтому я не уверен, что происходит?

Подробнее здесь: https://stackoverflow.com/questions/786 ... rows-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»