VisualBasic Snippets  

Informationen aus einer BMP-Datei auslesen:
 

Mit der folgenden Function kann die Größe und die Farbtiefe einer BMP-Datei bestimmt werden.


Option Explicit

Public Function GetBmpInfo(ByVal FileName As String, _
                            ByRef BitsPerPixels As Long, _
                            ByRef bmpWidth As Long, _
                            ByRef bmpHeight As Long) As Boolean
Dim tsDateinr As Byte
Dim tsKennung As String
Dim tsDummy1 As String * 28
Dim tsDummy2 As String * 18
Dim tsFarbtiefe As Integer
Dim tsWidth As Long
Dim tsHeight As Long
On Error Resume Next
  
  'Ist die angegebene Datei wirklich eine Bitmap ?
  tsDateinr = FreeFile
  tsKennung = Space(2)
  Open FileName For Binary As #tsDateinr
    Get #tsDateinr, , tsKennung
  Close #tsDateinr
  If tsKennung <> "BM" Then
    Exit Function
  End If

  'Farbtiefe ermitteln
  tsDateinr = FreeFile
  Open FileName For Binary As #tsDateinr
    Get #tsDateinr, , tsDummy1
    Get #tsDateinr, , tsFarbtiefe
  Close #tsDateinr
  Select Case tsFarbtiefe
  Case 1, 4, 8, 16, 24  'gültige Werte
    BitsPerPixels = tsFarbtiefe
  Case Else:            'alles andre ist ungültig
    Exit Function
  End Select

  'Groesse in Pixel
  tsDateinr = FreeFile
  Open FileName For Binary As #tsDateinr
    Get #tsDateinr, , tsDummy2
    Get #tsDateinr, , tsWidth
    Get #tsDateinr, , tsHeight
  Close #tsDateinr
  bmpWidth = tsWidth
  bmpHeight = tsHeight
  GetBmpInfo = True

End Function

Hier eine kleine Beispiel Routine zur anwendung dieser Funktion.


Sub testx()
Dim BitsPerPixel As Long
Dim xWidth As Long
Dim xHeight As Long

BitsPerPixel = 0
xWidth = 0
xHeight = 0

GetBmpInfo "C:\winnt\winnt.bmp", BitsPerPixel, xWidth, xHeight
Debug.Print xWidth & "Pixel * " & xHeight& & "Pixel mit " & BitsPerPixel & "Bit-Farbtiefe"

End Sub
Viel Spass !! 

© '2000 by T. Schindzielorz