VB 5/6-Tipp 0168: 24-Bit Farbwert in seine RGB-Bestandteile auflösen
von ActiveVB
Beschreibung
Wer einen 24-Bit Farbwert wieder in seinen RGB-Anteile zerlegen will muß sich eine solche Funktion selber basteln. Die hier vorgestellte isoliert die einzelnen Farbanteile durch eine Undverknüpfung. Das ganze geht aber noch schneller und eleganter unter Verwendung der CopyMemory, siehe hierzu Tipp 427
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei PROJECT1.VBP ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Beschriftungsfeld "Label1" Private Sub Form_Load() Dim z%, Col&, x1&, y1& With Form1 .AutoRedraw = True .BackColor = &HFFFFFF Randomize For z = 1 To 200 Col = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd) x1 = .Width * Rnd - 300 y1 = .Height * Rnd - 300 Form1.Line (x1, y1)-Step(600, 600), Col, BF Next z .Refresh .AutoRedraw = False End With End Sub Private Sub Form_MouseMove(Button As Integer, Shift _ As Integer, X As Single, Y _ As Single) Dim Col& Dim r As Byte, g As Byte, b As Byte Col = Form1.Point(X, Y) Me.Caption = Col Call RGBsplit(Col, r, g, b) Me.Caption = "R-" & r & " G-" & g & " B-" & b Label1.BackColor = RGB(r, g, b) End Sub 'Die eigentliche Routine Private Sub RGBsplit(ByVal Col, r As Byte, g As Byte, b As Byte) b = (Col And 16711680) / 65536 g = (Col And 65280) / 256 r = Col And 255 End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei PROJECT1.VBP --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.