VB - Homepage Tipp 037

Ermitteln der vorhandenen Farbanzahl

Gerade bei Programmen die mit viel Grafik arbeiten, ist es sehr zu empfehlen, im Vorab zu ermitteln, wieviel Farben eingestellt sind (16;256;65536;16Mill)
um gegebenenfalls den Programmteil zu laden, der mit weniger Farben auskommt, oder den Programmstart abzubrechen und dem User eine Nachricht über die erforderliche Anzahl an Farben anzuzeigen.

Nachstehendes Beispiel ermittelt lediglich die Farbanzahl und gibt sie in einer Messagebox aus.

######################################################
16Bit
General/Declarations

Declare Function GetDeviceCaps Lib "GDI" (ByVal hdc As Integer, ByVal nIndex As Integer) As Integer
Declare Function GetDC Lib "User" (ByVal hWnd As Integer) As Integer
Declare Function ReleaseDC Lib "User" (ByVal hWnd As Integer, ByVal hdc As Integer) As Integer
Const BITSPIXEL = 12
Const PLANES = 14

######################################################
32Bit
Allgemein/Deklarationen
Private Declare Function GetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Long, ByVal hdc As Long) As Long

Const BITSPIXEL = 12
Const PLANES = 14

#####################################################

Private Sub Form_Load()
Dim hdc As Long, RetVal As Long
Dim nBitsPerPixel As Integer

hdc = GetDC(0)
nBitsPerPixel = GetDeviceCaps(hdc, BITSPIXEL) * GetDeviceCaps(hdc, PLANES)
RetVal = ReleaseDC(0, hdc)
MsgBox("Anzahl der Farben= " & 2 ^ nBitsPerPixel)

End Sub


Tipp-Download

Quelle :

Zurück zur Übersichtsseite