Hi,
ich versuche in einer Bitmap Farben zu ersetzen.
Im Netz habe ich gefunden, wie man mit einer Color Matrix eine farbige Grafik in eine "gray Scale" Grafik umwandeln kann. Hier ein Code Beispiel:
Das klappt prima ... ist aber leider nicht ganz das was ich haben möchte.
Ich möchte, folgende Umsetzung:
schwarz = schwarz
weiß = weiß
alle anderen Farben = schwarz
Leider habe ich nicht gefunden, wie die Felder der 5x5 Matrix zu interpretieren sind ... und auch durch "Probieren" erschließt sich mir nicht die Funktion ...
Kann mir jemand sagen, ob und ggfs. wie ich die von mir beabsichtigte Umsetzung hinbekommen kann ?
LG
Peter
ich versuche in einer Bitmap Farben zu ersetzen.
Im Netz habe ich gefunden, wie man mit einer Color Matrix eine farbige Grafik in eine "gray Scale" Grafik umwandeln kann. Hier ein Code Beispiel:
VB.NET-Quellcode
- Dim grayscale As New Imaging.ColorMatrix(New Single()() _
- {
- New Single() {0.299, 0.299, 0.299, 0, 0},
- New Single() {0.587, 0.587, 0.587, 0, 0},
- New Single() {0.114, 0.114, 0.114, 0, 0},
- New Single() {0, 0, 0, 1, 0},
- New Single() {0, 0, 0, 0, 1}
- })
- Dim bmp As Bitmap = copyBitmap
- Dim imgattr As New Imaging.ImageAttributes()
- imgattr.SetColorMatrix(grayscale)
- Using g As Graphics = Graphics.FromImage(bmp)
- g.DrawImage(bmp, New Rectangle(0, 0, bmp.Width, bmp.Height),
- 0, 0, bmp.Width, bmp.Height,
- GraphicsUnit.Pixel, imgattr)
- End Using
Das klappt prima ... ist aber leider nicht ganz das was ich haben möchte.
Ich möchte, folgende Umsetzung:
schwarz = schwarz
weiß = weiß
alle anderen Farben = schwarz
Leider habe ich nicht gefunden, wie die Felder der 5x5 Matrix zu interpretieren sind ... und auch durch "Probieren" erschließt sich mir nicht die Funktion ...
Kann mir jemand sagen, ob und ggfs. wie ich die von mir beabsichtigte Umsetzung hinbekommen kann ?
LG
Peter