Dessiner image dans PictureBox

Résolu/Fermé
Barracuda8 Messages postés 107 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 19 décembre 2011 - 30 mai 2008 à 15:26
Barracuda8 Messages postés 107 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 19 décembre 2011 - 30 mai 2008 à 15:41
Bonjour,

J'ai un petit souci de code. Je travaille avec C# et je développe une application sous VB.NET.

J'ai une image dans un "pictureBox", j'aimerai que quand on clique sur cette image, il apparaisse un petit carré de couleur à l'endroit où l'on à cliqué (sur l'image donc).

J'arrive bien à recalculer mon image avec le carré en question. Le problème c'est que je recompose une image qui se met directement dans mon formulaire et non dans mon "PictureBox".

Voici mon code qui fonctionne mais avec le pb expliqué ci-dessus:


System.Drawing.Graphics g;

g = this.CreateGraphics();

g.Clear(this.BackColor);
Rectangle rect = new Rectangle(e.X, e.Y, 16, 16); //mon carré à l'endroit où je clique
Bitmap bitmap = new Bitmap(pict_previous.Image); //pict_previous.Image c'est le PictureBox
float[][] ptsArray ={
new float[] {1, 0, 0, 0, 0},
new float[] {0, 1, 0, 0, 0},
new float[] {0, 0, 1, 0, 0},
new float[] {0, 0, 0, 0.5f, 0},
new float[] {0, 0, 0, 0, 1}};

ColorMatrix clrMatrix = new ColorMatrix(ptsArray);
ImageAttributes imgAttributes = new ImageAttributes();
imgAttributes.SetColorMatrix(clrMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
g.FillRectangle(Brushes.Red, rect);

g.DrawImage(pict_previous.Image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), 0, 0, bitmap.Width, bitmap.Height, GraphicsUnit.Pixel, imgAttributes); //dessine le bon résultat mais pas dans le pictureBox

// Dispose
g.Dispose();


Je ne suis pas sùr que ma méthode soit la bonne donc je suis ouvert à toutes propositions!
Si quelqun pouvait m'aider ce serait sympa.

Merci d'avance,
Barracuda
A voir également:

1 réponse

Barracuda8 Messages postés 107 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 19 décembre 2011 65
30 mai 2008 à 15:41
Problème résolu:

Au lieu de mettre
this.CreateGraphics(); //le formulaire

il faut mettre
g = pict_previous.CreateGraphics();
0