Retrieving Bitmap properties

Retrieving Bitmap properties

The Picture box control does not directly expose any property that returns information on the bitmap currently loaded. You can retrieve this information by calling the GetObject API function, passing it the handle of the bitmap. This value is the Handle property of the IPictureDisp object (which is also the default property for the IPictureDisp object).Here is a procedure that you can easily reuse in all your applications:

Private Type BITMAP    bmType As Long         ' this must be zero    bmWidth As Long        ' bitmap width    bmHeight As Long       ' bitmap height    bmWidthBytes As Long   ' bytes in horiz raster line    bmPlanes As Integer    ' number of color planes    bmBitsPixel As Integer ' number of bits per pixel    bmBits As Long         ' address of pixel data in memoryEnd TypePrivate Declare Function GetObjectAPI Lib "gdi32" Alias "GetObjectA" (ByVal _    hObject As Long, ByVal nCount As Long, lpObject As Any) As Long' NOTE: VB4 users should convert the last two argument to As VariantSub GetBitmapInfo(ByVal handle As Long, width As Long, height As Long, _    Optional colorPlanes As Long, Optional bitsPerPixel As Long )    Dim bmp As BITMAP    GetObjectAPI handle, Len(bmp), bmp    width = bmp.bmWidth    height = bmp.bmHeight    colorPlanes = bmp.bmPlanes    bitsPerPixel = bmp.bmBitsPixelEnd Sub

Note that the last two arguments are optional, so you can ask for bitmap size only. Here is how you show this information:

GetBitmapInfo Picture1.Picture, width, height, colorPlanes, bitsPerPixelLabel1 = "Width = " & width & vbCrLf & "Height = " & height & vbCrLf & _    "Color Planes = " & colorPlanes & vbCrLf & "Bits per Pixel = " & _    bitsPerPixel


Share the Post: