Witam
Piszę na zaliczenie program graficzny, który umożliwia edytowanie zdjęć. Postanowiłem robić to na osobnych formatkach i mam z tym pewien problem. otóż po naciśnięciu przycisku "jasność" pojawia się Form4 wywołuję to z poziomu Form1 za pomocą takiego kodu:
Form4 form4 = new Form4(this);
form4.Owner = this;
form4.ShowDialog();
W Form1 znajduje sie obiekt pictureBox1 który wyświetla aktualne zdjecie. i teraz po uruchomieniu Form4, chciałbym za pomocą suwaka zmieniać jasność zdjęcia w Form1.
oto kod Form4:
namespace WindowsFormsApplication1
{
public partial class Form4 : Form
{
Form1 form1;
public Form4(Form1 form1)
{
InitializeComponent();
}
public void ApplyBrightness(int brightness)
{
int A, R, G, B;
Color pixelColor;
Bitmap bmpPo = new Bitmap(form1.pictureBox1.Image);
for (int y = 0; y < bmpPo.Height; y++)
{
for (int x = 0; x < bmpPo.Width; x++)
{
pixelColor = bmpPo.GetPixel(x, y);
A = pixelColor.A;
R = pixelColor.R + brightness;
if (R > 255)
{
R = 255;
}
else if (R < 0)
{
R = 0;
}
G = pixelColor.G + brightness;
if (G > 255)
{
G = 255;
}
else if (G < 0)
{
G = 0;
}
B = pixelColor.B + brightness;
if (B > 255)
{
B = 255;
}
else if (B < 0)
{
B = 0;
}
bmpPo.SetPixel(x, y, Color.FromArgb(A, R, G, B));
}
}
form1.pictureBox1.Image = bmpPo;
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void trackBar1_Scroll(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
ApplyBrightness(trackBar1.Value);
}
}
}
Niestety przy uruchomieniu programu nie wywala żadnego błędu, jednak gdy dojdzie do wykonania funkcji ApplyBrightness wywala program i w VisualStudio przy lini:
Bitmap bmpPo = new Bitmap(form1.pictureBox1.Image);
Pojawia się błąd Object reference not set to an instance of an object.
Niestety nie wiem jak sobie z tym poradzić wydaje mi się że prawidłowo dziedziczę pole pictureBox1 do tego na tym polu mam ustawione Modifers na Public