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