獲得位圖文件的信息

發表于: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))

  Debug.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

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97