Ecco il programma che ho fatto:
private void Form1_Paint(object sender, PaintEventArgs e)
{
if (click == true)
{
Rectangle rec = new Rectangle(10, 40, 10, 4);
for (int x = 0; x < 10; x++)
{
for (int y = 0; y < 4; y++)
{
e.Graphics.DrawRectangle(new Pen(tmp[x, y], 4), rec);
}
}
click = false;
}
}
public int cheX, cheY;
public Bitmap part = new Bitmap(50, 50);
public Color[,] tmp = new Color[10, 4];
public void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
cheX = e.X;
cheY = e.Y;
Bitmap map = new Bitmap(pictureBox1.Image);
for (int x = 0; x < 10; x++)
{
for (int y = 0; y < 4; y++)
{
tmp[x,y] = map.GetPixel(x + cheX, y + cheY);
part.SetPixel(x, y, tmp[x,y]);
}
}
click = true;
}
se ho capito bene la variabile "tmp" (matrice) contiene il colore selezionato...poi setto una variabile bool a true che mi serve per disegnare la parte di immagine selezionata, i problemi sono 2:
1. se non metto un break all'interno dell'evento "Mouse_Click" non mi esegue il codice;
2. mettendo il break mi disegna nel punto selezionato un immagine ma con i colori delle coordinate come se avessi clikkato in (0,0)...nonostante che la matrice colore me la carica con i colori giusti...
Uff....