vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Grafik und Font · Bilder und Icons   |   VB-Versionen: VB.NET27.07.07
Bestimmte Farbwerte ersetzen (VB.NET)

Mit dieser Funktion lässt sich ein bestimmter Farbwert eines Bildes durch eine andere Farbe ersetzen.

Autor:   Dieter OtterBewertung:  Views:  14.650 
www.tools4vb.deSystem:  WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Mit Hilfe der ColorMap-Klasse lässt sich ein bestimmter Farbwert eines Image-Objekts spielend einfach durch eine andere benutzerdefinierte Farbe ersetzen.

Public Function ReplaceColor(ByVal oBitmap As Image, _
  ByVal OldColor As Color, _
  ByVal NewColor As Color) As Image
 
  ' ColorMap mit Zuweisung der zu konvertierenden 
  ' Farben(erstellen)
  Dim oMap(0) As ColorMap
  oMap(0) = New ColorMap
  With oMap(0)
    .OldColor = OldColor
    .NewColor = NewColor
  End With
 
  ' ImageAttributes-Objekt mit Farbanpassung erstellen
  Dim oAttr As New ImageAttributes
  oAttr.SetRemapTable(oMap)
 
  ' Neues Image-Objekt erstellen
  Dim imgWidth As Integer = oBitmap.Width
  Dim imgHeight As Integer = oBitmap.Height
  Dim oImage As Image = Image.FromHbitmap( _
    New Bitmap(imgWidth, imgHeight).GetHbitmap)
 
  ' Bild unter Berücksichtigung des ImageAttributes-Objekts
  ' mit Farb-Konvertierung neu erstellen
  Using g As Graphics = Graphics.FromImage(oImage)
    g.DrawImage(oBitmap, New Rectangle(0, 0, imgWidth, imgHeight), _
      0, 0, imgWidth, imgHeight, GraphicsUnit.Pixel, oAttr)
  End Using
 
  ' neues Bild zurückgeben
  Return oImage
End Function

Aufrufbeispiel:

' Bild in PictureBox anzeigen und die Farbe 
' Magenta durch die Farbe Weiß ersetzen
PictureBox1.Image = ReplaceColor(Image.FromFile("bild.gif"), _
  Color.vbMagenta, Color.vbWhite)



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.