对于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)
加粗样式

该博客介绍了如何通过VBA代码调用API函数GetObjectAPI来读取BMP、JPG、GIF图片的分辨率信息。示例代码展示了加载图片,调用API获取位图对象,并在【立即窗口】中输出图片的宽度和高度。通过这个方法,可以在VBA环境中获取图片的基本属性。
8209

被折叠的 条评论
为什么被折叠?



