Rubrik: Grafik und Font · Bilder und Icons | VB-Versionen: VB2005, VB2008, VB2010 | 10.10.11 |
Individuelle Hintergrundfarbe für transparente Bilder Diese Funktion ändert die Hintergrundfarbe eines transparentes Bildes. | ||
Autor: Dieter Otter | Bewertung: | Views: 8.413 |
www.tools4vb.de | System: WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit nachfolgender Funktion lässt sich der transparente Bereich eines transparenten Bildes (z.B. GIF oder PNG) auf eine bestimmte Hintergrundfarbe festlegen.
Die Funktion erwartet als Parameter das Bild-Objekt, sowie den Farbwert für den transparenten Bereich des Bildes. Zurück erhalten Sie ein Image-Objekt mit der festgelegten Hintergrundfarbe.
Imports System.Drawing.Drawing2D ...
''' <summary> ''' Ändert die Hintergrundfarbe eines transparenten Bildes. ''' </summary> ''' <param name="Picture">Originalbild</param> ''' <param name="BackColor">Hintergrundfarbe für den transparenten Bereich des Bildes</param> ''' <returns>Image-Objekt</returns> Public Function ImageSetBackColor(ByVal Picture As Image, ByVal BackColor As Color) As Image ' Größe des Bildes Dim Width As Integer = Picture.Width Dim Height As Integer = Picture.Height ' ein neues Bitmap-Objekt in der benötigten Größe erstellen Dim newBitmap As New Bitmap(Width, Height) Using oGraphics As Graphics = Graphics.FromImage(newBitmap) ' Hintergrund füllen oGraphics.FillRectangle(New SolidBrush(BackColor), 0, 0, Width, Height) ' transparentes Bild auf den Hintergrund ausgeben oGraphics.DrawImage(Picture, 0, 0) End Using Return newBitmap End Function
Aufrufbeispiel:
PictureBox1.Image = ImageSetBackColor(Image.FromFile("MeinBild.gif"), Color.Red)