web-dev-qa-db-fra.com

Comment dessiner un rectangle sur une image avec transparence et texte

Il s'agit de mon premier projet basé sur des graphiques et pour commencer, je dois pouvoir dessiner un rectangle sur une image bitmap avec transparence et texte.

Je ne sais pas par où commencer. J'ai fait quelques recherches mais je n'arrive pas à trouver un article qui me permettra d'ajouter un rectangle semi transparent à une image.

Ce que j'aurai, c'est un flux d'images que je dois pouvoir manipuler.

Quelqu'un peut-il m'orienter dans la bonne direction pour cela?

Un site avec source serait génial car je n'ai jamais fait de travail GDI auparavant).

19
griegs

Vous pouvez essayer quelque chose comme ceci:

// Load the image (probably from your stream)
Image image = Image.FromFile( imagePath );

using (Graphics g = Graphics.FromImage(image))
{
   // Modify the image using g here... 
   // Create a brush with an alpha value and use the g.FillRectangle function
}

image.Save( imageNewPath );

Edit: le code pour créer un pinceau gris semi transparent

Color customColor = Color.FromArgb(50, Color.Gray);
SolidBrush shadowBrush = new SolidBrush(customColor);
g.FillRectangles(shadowBrush, new RectangleF[]{rectFToFill});
32
Nicolas Brault

Pour commencer, vous devez créer un contexte graphique à partir de l'image que vous souhaitez modifier. Voir ici.

// Create image.
Image imageFile = Image.FromFile("SampImag.bmp");

// Create graphics object for alteration.
Graphics newGraphics = Graphics.FromImage(imageFile);

Une fois que vous avez l'objet Graphics, vous pouvez utiliser ses nombreuses méthodes pour dessiner sur l'image. Dans votre exemple, vous utiliseriez la méthode DrawRectangle avec une couleur ARGB pour créer un rectangle semi-transparent sur votre image.

Vous pouvez ensuite afficher l'image sur un contrôle d'écran ou l'enregistrer sur le disque.

5
Paul Sasik