Option Explicit Private Type bitmapfileheader bftype As Integer bfsize As Long bfreserved1 As Integer bfreserved2 As Integer bfoffbits As Long End Type '头信息 Private Type bitmapinfoheader bisize As Long biwidth As Long biheight As Long biplanes As Integer bibitcount As Integer bicompression As Long bisizeimage As Long bixpelspermeter As Long biypelspermeter As Long biclrused As Long biclrimportant As Long End Type Private Type RGBQUAD rgbBlue As Byte rgbReserved As Byte rgbRed As Byte rgbGreen As Byte End TypeDim FileHeader As bitmapfileheader Dim FileInfoHeader As bitmapinfoheader Dim Palettesize As Integer Dim BMPFileToBinary(1024, 1024, 2) As BytePrivate Sub btnBMP_Click() Dim lngBMPWidth As Long 'BMP图片的宽 Dim lngBMPHeight As Long 'BMP图片的高 Dim intBMPBitCount As Long 'BMP图片的位数 Dim bytPoint As Byte Dim bytPalentry As Byte Dim bytP As Byte Dim intP As Integer Dim intT As Integer Dim intC As Integer Dim intD As Integer On Error GoTo errSub Open "D:\Test.bmp" For Binary As #1 Get #1, , FileHeader Get #1, , FileInfoHeader lngBMPWidth = FileInfoHeader.biwidth lngBMPHeight = FileInfoHeader.biheight intBMPBitCount = FileInfoHeader.bibitcount For intP = 0 To lngBMPHeight - 1 For intT = 0 To lngBMPWidth - 1 For intC = 0 To 2 Get #1, , bytPoint BMPFileToBinary(intT, intP, intC) = bytPoint Next intC Next intT Next intP
Option Explicit
Private Type bitmapfileheader
bftype As Integer
bfsize As Long
bfreserved1 As Integer
bfreserved2 As Integer
bfoffbits As Long
End Type
'头信息
Private Type bitmapinfoheader
bisize As Long
biwidth As Long
biheight As Long
biplanes As Integer
bibitcount As Integer
bicompression As Long
bisizeimage As Long
bixpelspermeter As Long
biypelspermeter As Long
biclrused As Long
biclrimportant As Long
End Type
Private Type RGBQUAD
rgbBlue As Byte
rgbReserved As Byte
rgbRed As Byte
rgbGreen As Byte
End TypeDim FileHeader As bitmapfileheader
Dim FileInfoHeader As bitmapinfoheader
Dim Palettesize As Integer
Dim BMPFileToBinary(1024, 1024, 2) As BytePrivate Sub btnBMP_Click()
Dim lngBMPWidth As Long 'BMP图片的宽
Dim lngBMPHeight As Long 'BMP图片的高
Dim intBMPBitCount As Long 'BMP图片的位数
Dim bytPoint As Byte
Dim bytPalentry As Byte
Dim bytP As Byte
Dim intP As Integer
Dim intT As Integer
Dim intC As Integer
Dim intD As Integer
On Error GoTo errSub
Open "D:\Test.bmp" For Binary As #1
Get #1, , FileHeader
Get #1, , FileInfoHeader
lngBMPWidth = FileInfoHeader.biwidth
lngBMPHeight = FileInfoHeader.biheight
intBMPBitCount = FileInfoHeader.bibitcount For intP = 0 To lngBMPHeight - 1
For intT = 0 To lngBMPWidth - 1
For intC = 0 To 2
Get #1, , bytPoint
BMPFileToBinary(intT, intP, intC) = bytPoint
Next intC
Next intT
Next intP
Close #1
Exit Sub
errSub:End Sub