100 Echo "GOODQ" 最佳答案 您可以使用-6ren">
gpt4 book ai didi

windows - 通过 VBScript 获取图像分辨率

转载 作者:可可西里 更新时间:2023-11-01 09:59:25 26 4
gpt4 key购买 nike

如何使用 VBScript 在 DPI 中获取图像分辨率?

例如

Res= GET "M.jpg" Resolution
If Res > 100
Echo "GOODQ"

最佳答案

您可以使用 HorizontalResolution 获取图像 DPI和 VerticalResolution WIA.ImageFile 的属性脚本对象:

Set objImage = CreateObject("WIA.ImageFile")

objImage.LoadFile "C:\M.jpg"

If objImage.HorizontalResolution > 100 Then
Log.Message "GOODQ (" & objImage.HorizontalResolution & " DPI)"
End If


为了完整起见,Windows Vista 及更高版本还有另一种解决方案 — 使用 Folder.GetDetailsOf从扩展文件属性中读取图像 DPI 的方法。但是代码会更长而且有点乱,因为:

  • 水平分辨率垂直分辨率 文件属性的索引在不同的 Windows 版本上是不同的(有关详细信息,请参阅 this pagethis my answer)。
  • 扩展文件属性将 DPI 作为字符串返回,如 240 dpi;您可能需要将其转换为数字。

    ' For Windows 7
    Const HORIZONTAL_RESOLUTION = 161
    Const VERTICAL_RESOLUTION = 163

    Dim objShell : Set objShell = CreateObject("Shell.Application")
    Dim objFolder : Set objFolder = objShell.Namespace("C:\MyFolder")
    Dim objFile : Set objFile = objFolder.ParseName("M.jpg")

    Dim strDpi : strDpi = objFolder.GetDetailsOf(objFile, HORIZONTAL_RESOLUTION) ' Returns DPI as a string like "240 dpi"
    Dim dpi : dpi = ToInt(strDpi)

    If dpi > 100 Then
    Log.Message "GOODQ (" & dpi & " DPI)"
    End If

    ' Extracts a number from a string, e.g. "240 dpi" -> 240
    ' NB: no error handling
    Function ToInt(ValueStr)
    Dim objRE : Set objRE = New RegExp
    objRE.Pattern = "\d+"
    Dim colMatches : Set colMatches = objRE.Execute(ValueStr)
    ToInt = CLng(colMatches(0).Value)
    End Function

关于windows - 通过 VBScript 获取图像分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21832712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com