获 得 位 图 文 件 的 信 息

    技术2022-05-11  85

    在Form中添加一个Picture控件和一个CommandButton控件,在Picture控件中加入一个位图文件,将下面代码加入其中: Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" _(ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) _As LongPrivate Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, _ByVal dwCount As Long, lpBits As Any) As LongPrivate Type BITMAP  bmType As Long  bmWidth As Long  bmHeight As Long  bmWidthBytes As Long  bmPlanes As Integer  bmBitsPixel As Integer  bmBits As LongEnd TypePrivate 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

    最新回复(0)