VBScript で画像の幅と高さを取得する

PNG や JPEG などの画像の幅と高さを取得してみます。
LoadPicture 関数は PNG に対応していないので、VBScript でファイルのプロパティを調査して取得することにします。

Dim strFileName, objFSO, objShellApp, objFolder
Dim ImageSize, Width, Height
strFileName = "C:imagetest.png"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace(objFSO.GetParentFolderName(strFileName))
Set objFile = objFolder.ParseName(objFSO.GetFileName(strFileName))

ImageSize = objFolder.GetDetailsOf(objFile,31)
Width = objFolder.GetDetailsOf(objFile,177)
Height = objFolder.GetDetailsOf(objFile,179)
If Len(ImageSize)>0 Then
  WScript.Echo ImageSize
  WScript.Echo Width & " × " & Height
Else
  WScript.Echo "サイズを取得できません"
End If

三行目のファイル名は、取得する画像のファイルパスに書き換えてください。
ドラッグ&ドロップに対応したり、指定したフォルダ内をスキャンしたりすることもできますが、いずれ。

31や177, 179といった数字は Windows のバージョンによって変わる可能性もあります。
(上は Windows 10 の64ビットパソコンで調べました)

この GetDetailsOf というプロパティを使うと、動画の大きさや時間を取得することもできるので便利です。

タイトルとURLをコピーしました