你要的信息储存在bmp图片的BITMAPINFOHEADER的biBitCount里,例如,你要判断的图片是“c:\abc.bmp",那么运行以下代码: 新建一个模块,添加代码: Public Type BITMAPFILEHEADER bfType As Integer bfSize As Long bfReserved1 As Integer bfReserved2 As Integer bfOffBits As Long End Type Public Type BITMAPINFOHEADER '40 bytes 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 Global h1 As BITMAPFILEHEADER Global h2 As BITMAPINFOHEADER 然后在form中添加一个按钮,代码如下:Private Sub Command1_Click() Open "c:\abc.bmp" For Binary As #1 Get #1, , h1 Get #1, , h2 Close #1palettesize = 2 ^ h2.biBitCount MsgBox "颜色数:" + Format(palettesize, "###")End Sub运行可得颜色数。临时写的,没有做出错处理等自己改改吧。
可不可以用vc做一个dll,然后的vb中调用。
BITMAPINFOHEADER
BITMAPV4HEADER
BITMAPV5HEADER
新建一个模块,添加代码:
Public Type BITMAPFILEHEADER
bfType As Integer
bfSize As Long
bfReserved1 As Integer
bfReserved2 As Integer
bfOffBits As Long
End Type
Public Type BITMAPINFOHEADER '40 bytes
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
Global h1 As BITMAPFILEHEADER
Global h2 As BITMAPINFOHEADER
然后在form中添加一个按钮,代码如下:Private Sub Command1_Click()
Open "c:\abc.bmp" For Binary As #1
Get #1, , h1
Get #1, , h2
Close #1palettesize = 2 ^ h2.biBitCount
MsgBox "颜色数:" + Format(palettesize, "###")End Sub运行可得颜色数。临时写的,没有做出错处理等自己改改吧。