Proszę pomóc z programą: muszę usunąć określony obiekt z bitmapy. Na przykład, mam obraz, który przedstawia pole pod niebiem. Muszę wyciąć nieba z obrazka (w Paint na przykład), wstawić obraz osadzony w programę, zapisać go piksel po pikselu w jakimś liście, wziąć obraz oryginalny i po kliknięciu konkretnego buttona, za pomogą tych pikselej zapisanych w liście, pozostawić na zdjęciu tylko niebo. Prośzę pomóc w realizacji tego kodu! Mam część, ale nie wiem, co robię żle.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication18
{
public partial class Form1 : Form
{
Graphics g;
Bitmap bmp;
Bitmap bmp2;
public Form1()
{
InitializeComponent();
g = pictureBox1.CreateGraphics();
}
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "JPG(*.JPG)|*.jpg";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
bmp = new Bitmap(openFileDialog1.FileName);
pictureBox1.Image = bmp;
}
}
public void button3_Click(object sender, EventArgs e)
{
Bitmap one = new Bitmap(pictureBox1.Image);
Bitmap two = new Bitmap(pictureBox2.Image);
for (int q = 0; q <= one.Width - 1; q++)
for (int z = 0; z <= one.Height - 1; z++)
{
for (int f = 0; f <= two.Width - 1; f++)
for (int s = 0; s <= two.Height - 1; s++)
{
if (one.GetPixel(q, z) == two.GetPixel(f, s))
{
one.SetPixel(q, z, bmp.GetPixel(q, z));
}
else
{
one.SetPixel(q, z, Color.White);
}
}
pictureBox1.Image = bmp;
}
private void button2_Click(object sender, EventArgs e)
{
openFileDialog2.Filter = "JPG(*.JPG)|*.jpg";
if (openFileDialog2.ShowDialog() == DialogResult.OK)
{
bmp2 = new Bitmap(openFileDialog2.FileName);
pictureBox2.Image = bmp2;
}
}
}
}