Sto lavorando a contatto con il gestore di desktop app in C# Windows form e attualmente sto cercando di aggiungere immagine avatar funzione di ritaglio. L'immagine è passati da una forma all'altra senza problemi. Tuttavia, l'immagine dopo il ritaglio non è passato al modulo di login, non importa quello che sto facendo. Stavo cercando di cambiare l'immagine nel form di Login da sovraccarico di un costruttore e la creazione di un nuovo oggetto su il ritaglio dell'immagine. Ricevo un errore però:
Sistema.ArgumentOutOfRangeException: "Parametro deve essere positivo e < Altezza. (Parametro ', y')”
L'Eccezione si verifica su 'Colore pxlColor' linea.
Raccolto metodo in cui un'immagine ritagliata viene creato:
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;
}
L'immagine viene correttamente visualizzato sul pictureBox2.Il campo dell'immagine. Costruttore del form di Login:
public Login_Register_Form(Bitmap croppedImage)
{
this.croppedPicture = (Image)croppedImage;
pictureBoxProfileImage.Image = this.croppedPicture;
}
Ho già fatto qualche ricerca in merito a tale questione e ha scoperto che il suddetto errore potrebbe essere dovuto a diversi formati di Immagine. Dopo aver apportato le loro dimensioni uguali, una NullObjectReference si è verificato sul 'pictureBoxProfileImage.Immagine = questo.croppedPicture;' linea.
Sistema.NullReferenceException: "riferimento a un Oggetto non impostato su un'istanza di oggetto."
Ho provato superamento di entrambe le Bitmap e Immagini variabili, il risultato è simile in entrambe le situazioni. Qualsiasi aiuto sarebbe appraciated.
Ciao Filip