■ PowerShellでExif情報を参照するには? #1

PowerShell (.NET) で画像ファイルのExif情報を参照するには?


PropertyItemsクラス

.NETの System.Drawing.BitmapクラスPropertyItemsプロパティ で取得できるようだ。
このプロパティは PropertyItemクラス オブジェクトの配列を返す。

PropertyItemクラス

このクラスには4つのプロパティがある。
・Id
・Len
・Type
・Value

Idプロパティ

プロパティが何の値かを示すID
IDの一覧は Microsoftのページ にて参照可能。
ExifのIDについては http://www.vieas.com/exif23.html の情報が分かりやすい。(タグ番号がIDに相当)

Len, Type, Valueプロパティ

Valueプロパティ は数値の配列が格納されている。
・数値の型は Typeプロパティ
・配列の長さは Lenプロパティ
である。

Exif情報表示プログラム

以上を踏まえ、引数で指定した画像ファイルの全プロパティを表示するスクリプト(ExifInfo.ps1)を作成した。
"ExifInfo.ps1 JPEGファイル名" として実行することで画像の付加情報を参照できる。
Param([Parameter(mandatory=$true)][String]$inputFile)
Add-Type -AssemblyName "System.Drawing"
$image = New-Object System.Drawing.Bitmap($inputFile)

foreach($prop in $image.PropertyItems)
{
  Write-Host("ID:" + [Convert]::ToString($prop.Id, 16) + " Len:" + $prop.Len + " Type:" + $prop.Type + " Value:" + $prop.Value)
}

$image.Dispose()
※ PowerShellスクリプトを実行するには権限の変更が必要。
過去Blog:PowerShell学習 #2:スクリプトを実行するには?


#2 へ続く


自作プログラム, PowerShell, Exif

0 件のコメント:

その他の記事