2013-04-08 14 views
10

Dies ist meine erste Grafik-basierte Projekt und ich muss in der Lage sein, ein Rechteck auf eine Bitmap mit Transparenz und Text zu zeichnen.Wie zeichne ich ein Rechteck auf ein Bild mit Transparenz und Text

Ich bin mir nicht sicher, wo ich damit anfangen soll. Ich habe ein wenig Nachforschungen angestellt, finde aber keinen Artikel, mit dem ich einem Bild ein halbtransparentes Rechteck hinzufügen könnte.

Was ich haben werde ist ein Bildstrom, den ich manipulieren muss.

Kann mir bitte jemand in die richtige Richtung zeigen?

Eine Website mit Quelle wäre großartig, da ich noch nie zuvor eine GDI-Arbeit gemacht habe.

Antwort

25

Sie können so etwas wie dies versuchen:

// 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: der Code graue Bürste eine halb Transparenz zu schaffen

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

+1 Schön und prägnant –

+0

Super. Vielen Dank. – griegs

4

Um Ihnen einen Grafikkontext aus dem Bild erstellen müssen, um loszulegen, dass Sie möchten ändern. See here.

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

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

Sobald Sie die Grafik haben Objekt, das Sie seine vielen Methoden verwenden können auf das Bild zu zeichnen. In Ihrem Beispiel würden Sie die Methode DrawRectangle mit einer ARGB-Farbe verwenden, um ein halbtransparentes Rechteck in Ihrem Bild zu erstellen.

Sie können das Bild dann auf einem Bildschirm-Steuerelement anzeigen oder auf der Festplatte speichern.

+0

+1, richtig, ich denke ich verstehe das. Vielen Dank. – griegs

Verwandte Themen