vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: RGB Farbwert aus ABGR Bits extrahieren? 
Autor: Preisser
Datum: 19.01.13 13:36

Hallo,
arbeitest du wirklich mit VB6/VBA? (Nicht dass du dich im falschen Form befindest.)

Wenn ja, könntest du ja den 16-Bit-Playstation-Farbwert in einen 24-Bit-BGR-Farbwert für VB konvertieren, den man beispielsweise als BackColor von Controls zuweisen kann, um die Farbe zu sehen:
' Konvertiert einen 16-Bit-PlayStation-Farbwert in einen 24-Bit BGR Farbwert
Public Function ConvertPlaystationColorToDisplayColor(psColor As Long)
    Dim ergebnis As Long
    Dim i As Long
 
    Dim faktor As Long
    faktor = 1
 
    For i = 0 To 2
        Dim wert As Long
        wert = Int(CDbl(psColor And &H1F) / 31# * 255#)
        psColor = psColor \ 32 '2^5
 
        ergebnis = ergebnis Or (wert * faktor)
        faktor = faktor * 256
    Next
 
    ConvertPlaystationColorToDisplayColor = ergebnis
End Function
Folgender Aufruf würde dann z.B. den Beispiel-Grün-Farbwert in einen VB-Farbwert konvertieren und anzeigen (die Form müsste dann grün werden).

Wenn du die einzelnen Farbwerte für Rot, Grün oder Blau als 8-Bit-Werte (also von 0-255) benötigst, müsstest du dann einfach jeweils die entsprechenden Bits extrahieren.
    Dim farbe As Long
    farbe = &H3E0 'Grün: 0 00000 11111 00000 (GRÜN) G
    Dim displayFarbe As Long
    displayFarbe = ConvertPlaystationColorToDisplayColor(farbe)
    BackColor = displayFarbe 'Hintergrundfarbe der Form setzen
 
    Dim rot As Long, gruen As Long, blau As Long 'Einzelne RGB-Werte ermitteln
    rot = displayFarbe And &HFF
    gruen = (displayFarbe \ &H100) And &HFF
    blau = (displayFarbe \ &H10000) And &HFF
Allerdings unterstützt VB6, soweit ich weiß, keine Alphatransparenz, deswegen werden hier auch die Farben dargestellt, die für A das BIt 1 haben.
In (VB).Net hingegen gibt es die System.Drawing.Color-Struktur, die Farbwerte als 32-Bit ARGB darstellen kann.

Beitrag wurde zuletzt am 19.01.13 um 13:42:53 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
RGB Farbwert aus ABGR Bits extrahieren?2.487Mortician19.01.13 11:16
Re: RGB Farbwert aus ABGR Bits extrahieren?1.868Preisser19.01.13 13:36
Re: RGB Farbwert aus ABGR Bits extrahieren?1.757Mortician19.01.13 17:00
Re: RGB Farbwert aus ABGR Bits extrahieren?1.734Zardoz22.01.13 13:56
Re: RGB Farbwert aus ABGR Bits extrahieren?1.773theMortician25.01.13 11:07
Re: RGB Farbwert aus ABGR Bits extrahieren?1.701Zardoz25.01.13 18:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel