上一篇博客《VBA读取图片属性信息》中介绍了使用WIA对象读取图片信息,本文将解释另一种方法读取图片尺寸信息。
示例代码如下。
Function Himetric2Pixel(Hime)
Dim objWSH As Object
Dim lngDPI As Long
Set objWSH = CreateObject("Wscript.Shell")
lngDPI = objWSH.RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI")
Himetric2Pixel = Round(Hime * lngDPI / 2540)
Set objWSH = Nothing
End Function
Sub Demo()
Dim objPic As Object
Set objPic = LoadPicture("c:\temp\1.jpg")
Debug.Print "宽度:" & Himetric2Pixel(objPic.Width) & "像素"
Debug.Print "高度:" & Himetric2Pixel(objPic.Height) & "像素"
Set objPic = Nothing
End Sub
【立即窗口】中输出如下图所示。
【代码解析】
第1~7行代码为函数过程Himetric2Pixel,用于实现Himetric和Pixel(像素)直接的转换。
第4行代码创建Wscript.Shell
对象。
第5行代码读取注册表中的AppliedDPI键值。
第6行代码进行转换。
第7行代码释放对象变量占用的系统资源。
第9~15行代码为演示过程。
第11行代码加载图片文件。
第12~13行代码输出图片尺寸信息。
第14行代码释放对象变量占用的系统资源。
相关文章链接: