У меня только что была похожая проблема, несколько часов назад проверили ваши границы на клон. Если вы выйдете за пределы своего растрового изображения, оно выдаст это исключение.
Так что будьте осторожны, так оно и есть.
1: MinWidth + (int)croppedBitmap.Width - MinWidth - MaxWidth <= croppedBitmap.Width
2: 0 + 1323 <= croppedBitmap.Height
если мои предположения верны, 1 и 2 не выполнены
EDIT:
Добавьте это перед Clone и опубликуйте результат в своем сообщении
Debug.WriteLine("Bitmap-width: "+croppedBitmap.Width);
Debug.WriteLine("Bitmap-height: "+croppedBitmap.Height);
Debug.WriteLine("Width: "+(croppedBitmap.Width - MinWidth - MaxWidth));
Debug.WriteLine("MinWidth: "+MinWidth);
EDIT2:
1. Ваша ширина <0 (в данном случае -1), чего не должно быть
2. Даже если это будет> 0, это приведет к ошибке, так как 877 + x is> croppedBitmap.Width, что недопустимо
Итак, что я говорил с самого начала, это то, что вы должны убедиться, что ваши ширина и высота должны быть больше 0 И что сумма ширины + MinWidth и высоты + 0 из вашего прямоугольника не должна превышать границы вашего изображения.
Прямо сейчас ваш прямоугольник выглядит так:
new Rectangle(877, 0, -1, 1323) // Rectangle(posx, posy, width, height)
Итак, как вы можете видеть, ширина отрицательна, а это не то, что вам нужно, она должна быть больше 0. Поэтому, если бы вы сделали это сейчас:
new Rectangle(877, 0, 1, 1323)
Это все равно будет неправильно, поскольку ваш прямоугольник будет иметь размеры от 877 до 878 (координата x), чего не может быть, поскольку ваше изображение имеет ширину всего 877 пикселей. Это означает, что MinWidth
и (int)croppedBitmap.Width - MinWidth - MaxWidth
неверны. Вы должны убедиться, что ваши значения не вызывают подобных проблем.
Это не проблема метода Copy, это скорее проблема переданных параметров. Вы должны проверить их, прежде чем передать их!