Tipp 0209 Farb-Bitmaps zu Graustufen konvertieren
Autor/Einsender:
Datum:
  Alexander Csadek
22.03.2002
Entwicklungsumgebung:   VB 6
Farb-Bilder zu SW-(Graustufen-)Bilder konvertieren ist sehr einfach. Der Farbwert jedes Pixels wird in die Rot-, Blau-, und Grün-Anteile aufgeteilt. Diese drei Werte werden addiert und dann durch 3 dividiert. Mit diesem errechneten Schnitt wird dann der Wert des Pixels gesetzt.
Wichtig ist dabei, der errechnete Wert muss bei allen drei Farbanteilen angegeben werden (z.B. RGB(30, 30, 30)). So entsteht aus dem Farbbild ein Bild in Graustufen.
 
Option Explicit

Private Sub ConvertToBW()
  Dim x As Integer
  Dim y As Integer
  Dim col As Long
  Dim rot As Integer
  Dim blau As Integer
  Dim gruen As Integer
  Dim wert As Integer

  Dim bsG As Single
  Dim bsR As Single
  Dim bsB As Single
  Dim Rmask As Long
  Dim Gmask As Long
  Dim Bmask As Long

  bsR = 1
  bsG = &H100&
  bsB = &H10000

  Rmask = &HFF&
  Gmask = &HFF00&
  Bmask = &HFF0000

  For y = 0 To Picture1.ScaleHeight
    For x = 0 To Picture1.ScaleWidth
      col = Picture1.Point(x, y)
      rot = (col And Rmask) / bsR
      blau = (col And Bmask) / bsB
      gruen = (col And Gmask) / bsG
      wert = (rot + blau + gruen) \ 3
      Picture1.PSet (x, y), RGB(wert, wert, wert)
    Next x
  Next y
End Sub
 
Weitere Links zum Thema
24-bit-Bitmap erstellen
Bitmap-Informationen auslesen
Farbwerte berechnen
RGB Farbanteile

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (9 kB) Downloads bisher: [ 956 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Dienstag, 27. September 2011