对于BMP、JPG、GIF图片可以借助API读取其分辨率信息,示例图片的分辨率为141x119,如下图所示。
示例代码如下。
Private Declare Function GetObjectAPI Lib "gdi32" _
Alias "GetObjectA" ( _
ByVal hObject As Long, _
ByVal nCount As Long, _
lpObject As Any) As Long
Private Type BITMAP
udtBitMapType As Long
udtBitMapWidth As Long
udtBitMapHeight As Long
udtBitMapWidthBytes As Long
udtBitMapPlanes As Integer
udtBitMapBitsPixel As Integer
udtBitMapBits As Long
End Type
Sub GetBitMapDim()
Dim udtBITMAP As BITMAP
Dim objPicture As IPictureDisp
Set objPicture = LoadPicture("C:\Temp\1.bmp")
Call GetObjectAPI(objPicture, Len(udtBITMAP), udtBITMAP)
With udtBITMAP
Debug.Print "宽度:" & .udtBitMapWidth & "像素"
Debug.Print "高度:" & .udtBitMapHeight & "像素"
Set objPicture = Nothing
End Sub
运行代码结果如下。
【代码解析】
第1~5行代码声明API函数GetObjectAPI。
第6~14行代码声明数据结果用于获取位图信息。
第18行代码加载图片文件。
第19行代码调用API函数读取位图信息。
第21~22行代码在【立即窗口】输出分辨率信息。
第24行代码释放对象变量占用的系统资源。
相关文章链接:
VBA读取图片属性信息(4/4)
加粗样式