Я работаю над настольным приложением contact manager в C# Windows forms и в настоящее время пытаюсь добавить функцию обрезки изображений аватаров. Изображение передается из одной формы в другую без каких-либо проблем. Однако изображение после обрезки не передается обратно в форму входа в систему, что бы я ни делал. Я пытался изменить изображение в форме входа в систему, перегрузив конструктор и создав новый объект при обрезке изображения. Однако я получаю такую ошибку:
Система.Исключение ArgumentOutOfRangeException: „Параметр должен быть положительным и (Параметр "y")”
Исключение возникает в строке "Цвет pxlColor".
Метод обрезки, при котором создается обрезанное изображение:
private void button_Crop_Image_Click(object sender, EventArgs e)
{
Cursor = Cursors.Default;
Bitmap bitmap2 = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.DrawToBitmap(bitmap2, pictureBox1.ClientRectangle);
Bitmap croppedImage = new Bitmap(rectW, rectH);
for (int x = 0; x < rectW; x++)
{
for (int y = 0; y < rectH; y++)
{
Color pxlColor = bitmap2.GetPixel(cropX + x, cropY + y);
croppedImage.SetPixel(x, y, pxlColor);
}
}
pictureBox2.Image = (Image)croppedImage;
Login_Register_Form login = new Login_Register_Form(croppedImage);
pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
}
Изображение корректно отображается в поле pictureBox2.Image. Конструктор из формы входа в систему:
public Login_Register_Form(Bitmap croppedImage)
{
this.croppedPicture = (Image)croppedImage;
pictureBoxProfileImage.Image = this.croppedPicture;
}
Я уже провел некоторые исследования в этом вопросе и выяснил, что вышеупомянутая ошибка может быть вызвана различными размерами полей изображения. После выравнивания их размера на изображении pictureBoxProfileImage возникло значение NullObjectReference.Изображение = это.Обрезанная картинка;' строка.
Исключение System.NullReferenceException: „Ссылка на объект не установлена на экземпляр объекта”.
Я попытался передать как растровые, так и графические переменные, результат в обеих ситуациях одинаков. Любая помощь будет оценена по достоинству.
Твое здоровье, Филип