Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // --------------------------------------- TRYBY MIESZANIA --------------------------------------- //
- private void SetRGB(Bitmap bm, Bitmap bm2, int x, int y)
- {
- r1 = bm.GetPixel(x, y).R / 255.0;
- g1 = bm.GetPixel(x, y).G / 255.0;
- b1 = bm.GetPixel(x, y).B / 255.0;
- r2 = bm2.GetPixel(x, y).R / 255.0;
- g2 = bm2.GetPixel(x, y).G / 255.0;
- b2 = bm2.GetPixel(x, y).B / 255.0;
- }
- //SUMA
- private void additiveToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- double red = r1 + r2;
- double green = g1 + g2;
- double blue = b1 + b2;
- if (red > 1) red = 1;
- if (green > 1) green = 1;
- if (blue > 1) blue = 1;
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- //ODEJMOWANIE
- private void subtractiveToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- double red = r1 + r2 - 1;
- double green = g1 + g2 - 1;
- double blue = b1 + b2 - 1;
- if (red < 0) red = 0;
- if (green < 0) green = 0;
- if (blue < 0) blue = 0;
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- //ROZNICA
- private void differenceToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- double red = Math.Abs(r1 - r2);
- double green = Math.Abs(g1 - g2);
- double blue = Math.Abs(b1 - b2);
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- //MNOZENIE
- private void multiplyToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- double red = r1 * r2;
- double green = g1 * g2;
- double blue = b1 * b2;
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- //MNOZENIE ODWROTNOSCI
- private void screenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- double red = 1 - (1 - r1) * (1 - r2);
- double green = 1 - (1 - g1) * (1 - g2);
- double blue = 1 - (1 - b1) * (1 - b2);
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- //NEGACJA
- private void negationToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- double red = 1 - Math.Abs(1 - r1 - r2);
- double green = 1 - Math.Abs(1 - g1 - g2);
- double blue = 1 - Math.Abs(1 - b1 - b2);
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // CIEMNIEJSZE
- private void darkenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- double red = Math.Min(r1, r2);
- double green = Math.Min(g1, g2);
- double blue = Math.Min(b1, b2);
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // JASNIEJSZE
- private void lightenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- double red = Math.Max(r1, r2);
- double green = Math.Max(g1, g2);
- double blue = Math.Max(b1, b2);
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // WYLACZENIE
- private void exclusionToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- double red = r1 + r2 - 2 * r1 * r2;
- double green = g1 + g2 - 2 * g1 * g2;
- double blue = b1 + b2 - 2 * b1 * b2;
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // NAKLADKA
- private void overlayToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- double red, green, blue;
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- if (r1 < 0.5)
- {
- red = 2 * r1 * r2;
- }
- else { red = 1 - 2 * (1 - r1) * (1 - r2); }
- if (g1 < 0.5)
- {
- green = 2 * g1 * g2;
- }
- else { green = 1 - 2 * (1 - g1) * (1 - g2); }
- if (b1 < 0.5)
- {
- blue = 2 * b1 * b2;
- }
- else { blue = 1 - 2 * (1 - b1) * (1 - b2); }
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // OSTRE SWIATLO
- private void hardLightToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- double red, green, blue;
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- if (r2 < 0.5)
- {
- red = 2 * r1 * r2;
- }
- else { red = 1 - 2 * (1 - r1) * (1 - r2); }
- if (g2 < 0.5)
- {
- green = 2 * g1 * g2;
- }
- else { green = 1 - 2 * (1 - g1) * (1 - g2); }
- if (b2 < 0.5)
- {
- blue = 2 * b1 * b2;
- }
- else { blue = 1 - 2 * (1 - b1) * (1 - b2); }
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // LAGODNE SWIATLO
- private void softLightToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- double red, green, blue;
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- if (r2 < 0.5)
- {
- red = 2 * r1 * r2 + Math.Pow(r1, 2) * (1 - 2 * r2);
- }
- else { red = 2 * r1 * (1 - r2) + Math.Sqrt(r1) * (2 * r2 - 1); }
- if (g2 < 0.5)
- {
- green = 2 * g1 * g2 + Math.Pow(g1, 2) * (1 - 2 * g2);
- }
- else { green = 2 * g1 * (1 - g2) + Math.Sqrt(g1) * (2 * g2 - 1); }
- if (b2 < 0.5)
- {
- blue = 2 * b1 * b2 + Math.Pow(b1, 2) * (1 - 2 * b2);
- }
- else { blue = 2 * b1 * (1 - b2) + Math.Sqrt(b1) * (2 * b2 - 1); }
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // ROZCIENCZENIE
- private void colorDodgeToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- double red, green, blue;
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- red = r1 / (1 - r2);
- green = g1 / (1 - g2);
- blue = b1 / (1 - b2);
- if (red > 1) red = 1;
- if (green > 1) green = 1;
- if (blue > 1) blue = 1;
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // WYPALANIE
- private void colorBurnToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- double red, green, blue;
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- if (r2 == 0) r2 = 0.01;
- if (g2 == 0) g2 = 0.01;
- if (b2 == 0) b2 = 0.01;
- red = 1 - (1 - r1) / r2;
- green = 1 - (1 - g1) / g2;
- blue = 1 - (1 - b1) / b2;
- if (red < 0) red = 0;
- if (green < 0) green = 0;
- if (blue < 0) blue = 0;
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- //REFLECT
- private void reflectToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- double red, green, blue;
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- red = Math.Pow(r1, 2) / (1 - r2);
- green = Math.Pow(g1, 2) / (1 - g2);
- blue = Math.Pow(b1, 2) / (1 - b2);
- if (red > 1) red = 1;
- if (green > 1) green = 1;
- if (blue > 1) blue = 1;
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // PRZEZROCZYSTOSC
- private void transparencyToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if (check == true && check2 == true)
- {
- bm = new Bitmap(pictureBox1.Image);
- bm2 = new Bitmap(pictureBox2.Image);
- temp = bm;
- temp2 = bm2;
- temp3 = new Bitmap(600, 400);
- double red, green, blue, alpha;
- for (int i = 0; i < temp.Width; i++)
- {
- for (int j = 0; j < temp.Height; j++)
- {
- SetRGB(temp, temp2, i, j);
- alpha = double.Parse(textBox1.Text);
- red = (1 - alpha) * r2 + alpha * r1;
- green = (1 - alpha) * g2 + alpha * g1;
- blue = (1 - alpha) * b2 + alpha * b1;
- if (red > 1) red = 1;
- if (green > 1) green = 1;
- if (blue > 1) blue = 1;
- red = red * 255.0;
- green = green * 255.0;
- blue = blue * 255.0;
- //Console.WriteLine("czerwony to {0}, zielony to {1}, niebieski to {2} ", red, green, blue);
- temp3.SetPixel(i, j, Color.FromArgb((int)red, (int)green, (int)blue));
- }
- }
- pictureBox3.Image = temp3;
- pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage;
- }
- else
- System.Windows.Forms.MessageBox.Show("Nie załadowano zdjęcia.");
- }
- // Suwak do janości
- private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
- {
- label1.Text = hScrollBar1.Value.ToString();
- brightness = hScrollBar1.Value;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement