如何确定tiff文件的图像尺寸?

gun*_*shy 3 vbscript tiff asp-classic

我有一个vbscript脚本,我需要通过一个.tif文件目录来咀嚼.对于每个文件,我需要确定文件是按比例分配为横向还是纵向.基本上,我需要能够获取每个文件的图像尺寸.因此,我已经看到一些人阅读文件文件头以从jpg或bmp文件中提取此类信息的示例.有没有人做同样的事情来提取tiff文件的维度?

Hel*_*len 9

在VBScript中,您可以通过两种方式确定图像尺寸:

  1. 使用WIA自动化库(下载链接,MSDN文档,关于此主题的优秀Hey,Scripitng Guy!文章).一旦注册了wiaaut.dll库,就可以使用以下简单代码:

    Set oImage = CreateObject("WIA.ImageFile")
    oImage.LoadFile "C:\Images\MyImage.tif"
    
    WScript.Echo "Width: "  & oImage.Width & vbNewLine & _
                 "Height: " & oImage.Height
    
    Run Code Online (Sandbox Code Playgroud)


  2. 使用该GetDetailsOf方法读取相应的扩展文件属性.这是一个本机Windows脚本方法,因此不需要外部库; 但代码更长:

    Const DIMENSIONS = 31
    CONST WIDTH  = 162
    CONST HEIGTH = 164
    
    Set oShell  = CreateObject ("Shell.Application")
    Set oFolder = oShell.Namespace ("C:\Images")
    Set oFile   = oFolder.ParseName("MyImage.tif")
    
    strDimensions = oFolder.GetDetailsOf(oFile, DIMENSIONS)    
    strWidth  = oFolder.GetDetailsOf(oFile, WIDTH)
    strHeigth = oFolder.GetDetailsOf(oFile, HEIGTH)
    
    WScript.Echo "Dimensions: " & strDimensions & vbNewLine & _
                 "Width: "      & strWidth      & vbNewLine & _
                 "Height: "     & strHeigth
    
    Run Code Online (Sandbox Code Playgroud)

    此脚本输出如下内容:

    尺寸:2464 x 3248
    宽度:2464像素
    高度:3248像素

    因此,如果您需要普通数字,则必须从返回的字符串中提取它们.

    这个方法还有另一个问题 - 属性索引(脚本开头的那些常量)在不同的Windows版本中是不同的,正如我在这个答案中解释的那样.以上脚本适用于Windows 7,但如果您使用其他Windows版本,或者您希望脚本在不同的Windows版本上运行,则需要使用特定于版本的索引.可用的性能指标的最完整的清单在这里.