Dessiner image dans PictureBox

Résolu
Barracuda8 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -  
Barracuda8 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -
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 108 Date d'inscription   Statut Membre Dernière intervention   65
 
Problème résolu:

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

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