獲得位圖文件的信息
發表于:2007-07-14來源:作者:點擊數:
標簽:
在Form中添加一個Picture控件和一個CommandButton控件,在Picture控件中加入一個位圖文件,將下面代碼加入其中: Private Declare Function GetObject Lib gdi32 Alias GetObjectA _ (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) _ As Long
在Form中添加一個Picture控件和一個CommandButton控件,在Picture控件中加入一個位圖文件,將下面代碼加入其中:
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" _
(ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) _
As Long
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, _
ByVal dwCount As Long, lpBits As Any) As Long
Private Type BITMAP
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type
Private Sub Command1_Click()
Dim hBitmap As Long
Dim res As Long
Dim bmp As BITMAP
Dim byteAry() As Byte
Dim totbyte As Long, i As Long
hBitmap = Picture1.Picture.Handle
res = GetObject(hBitmap, Len(bmp), bmp) '取得BITMAP的結構
totbyte = bmp.bmWidthBytes * bmp.bmHeight '總共要多少BYTE來存圖
ReDim byteAry(totbyte - 1)
'將Picture1中的圖信息存到ByteAry
res = GetBitmapBits(hBitmap, totbyte, byteAry(0))
De
bug.Print "Total Bytes Copied :"; res
Debug.Print "bmp.bmBits "; bmp.bmBits
Debug.Print "bmp.bmBitsPixel "; bmp.bmBitsPixel '每相素位數
Debug.Print "bmp.bmHeight "; bmp.bmHeight '以相素計算圖象高度
Debug.Print "bmp.bmPlanes "; bmp.bmPlanes
Debug.Print "bmp.bmType "; bmp.bmType
Debug.Print "bmp.bmWidth "; bmp.bmWidth '以相素計算圖形寬度
Debug.Print "bmp.bmWidthBytes "; bmp.bmWidthBytes '以字節計算的每掃描線長度?
End Sub
原文轉自:http://www.anti-gravitydesign.com