Bonjour,
Voici mon probleme.J'aimerai dessinner un cercle dans une picturebox au dessus d'une image (image deja chargee dans la picture box avant de dessinner). De plus j'aimerai que mon cercle se dessinne a l'endroit ou je clique avec la souris. Pour le moment j'essaie de faire un rectangle mais rien ne se passe, voici mon code:
Ok j'y arrive mais ce n'est pas vraiment la facon dont je veux proceder. Le truc c'est que je capture l'image en cours dans ma picturebox, je dessine dessus et je le reinjecte dans ma picture box. Voici le code:
private
void pictureBox_map_mousedown(
object sender, System.Windows.Forms.MouseEventArgs e)
{
x=e.X;
y=e.Y;
Bitmap bmp =
new Bitmap(pictureBox_map.Image, pictureBox_map.Size);
pictureBox_map.Image.Dispose();
//liberation desz ressources
Graphics g = Graphics.FromImage(bmp);
Pen pen =
new Pen(
new SolidBrush(Color.Black));
g.DrawRectangle(pen,x,y,5,5);
SolidBrush mySolidBrush =
new SolidBrush(Color.Red);
g.FillRectangle(mySolidBrush,x,y,5,5);
pictureBox_map.Image = bmp;
}
Le probleme est si je veux l'effacer en recliquant dessus par exemple, je ne pourrai pas l'effacer car il est incruste dans mon image jpg. Ma question est la suivante : Comment dessiner sur l'image de la picturebox (sorte de calque possedant mes objets cercles) sans incruster les cercles dans l'image??
Merci.
Hum, je pensais que tu voulais tout effacer, et dans ce cas il suffisiait que tu gardes dans une instance d'Image une copie de ton image de base non modifié afin de la copier dans la propriété Image du PictureBox au moment de l'effacement.
Mais si ton but est de pouvoir supprimer certaines formes et pas les autres il va falloir que tu persistes leurs infos de dessin, et que tu les redessines à chaque suppression de l'une d'entres elles (pour l'ajout il suffit de dessiner la nouvelle sans repartir du debut).