Pracujem na contact manager desktop aplikáciu v C# Windows formy a ja som v súčasnej dobe snaží pridať snímku avatar orezanie funkciu. Obraz sa prenáša z jednej formy na inú bez akýchkoľvek problémov. Avšak, obrázka po orezaní nie je prešla späť do prihlasovacieho formulára, bez ohľadu na to, čo robím. Snažil som sa zmeniť obrázok v Prihlasovací formulár preťaženiu a konštruktéra a vytvoriť nový objekt, na orezanie obrázka. Som prijať takúto chybu, avšak:
Systému.ArgumentOutOfRangeException: "Parameter musí byť kladný a < Výšky. (Parameter 'y')"
Výnimkou vyskytuje na 'Color pxlColor línie".
Plodín metóda, kde orezanie obrázku je vytvorené:
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;
}
Obrázok je správne zobrazené na pictureBox2.Obrázok oblasti. Constructor z Prihlasovací formulár:
public Login_Register_Form(Bitmap croppedImage)
{
this.croppedPicture = (Image)croppedImage;
pictureBoxProfileImage.Image = this.croppedPicture;
}
Ja som už urobil nejaký výskum v tejto veci, a zistil, že vyššie uvedené chyba môže byť v dôsledku rôznych veľkostí Obrazu polia. Po tom, čo ich veľkosť je rovnaká, a NullObjectReference nastala na 'pictureBoxProfileImage.Obrázok = to.croppedPicture;' line.
Systému.NullReferenceException: "odkaz na Objekt nie je nastavený na inštanciu objektu."
Snažil som sa absolvovaní oboch Bitmap a Obraz premenných, výsledok je podobný v oboch situáciách. Pomôcť by appraciated.
Na zdravie, Filip