画像ファイルの情報の一覧を表示するPowerShellスクリプト

powershell コンピュータ
powershell

サイズや解像度が異なる画像ファイルの情報を一覧するスクリプトを作成しました。

<#
.SYNOPSIS
画像ファイルの情報の一覧を表示する

.DESCRIPTION
画像ファイルの解像度などの情報を一覧出来ます。

.EXAMPLE
ImgLs.ps1 .\Picuters

.PARAMETER TargetDir
対象ディレクトリ

#>
using namespace System.Drawing
using namespace System.IO

param(
    [string]
    $TargetDir = ".",
    [switch]
    $Help
)

if ($Help) {
    Get-Help $PSCommandPath
    Exit 1
}

Get-ChildItem -LiteralPath $TargetDir -File | ForEach-Object {
    $path = $_.FullName.ToString()
    $fs = [FileStream]::New($path, [FileMode]::Open, [FileAccess]::Read)
    $img = [Image]::FromStream($fs)
    [PSCustomObject]@{
        "Length" = $_.Length
        "Width" = $img.Width
        "Height" = $img.Height
        "RawFormat" = $img.RawFormat
        "PixelFormat" = $img.PixelFormat
        "Name" = $_.Name
    }
    $img.Dispose()
    $fs.Close()
} | Format-Table

実行結果サンプル

(base) PS C:\Users\karet> ImgLs.ps1 .\Pictures

Length Width Height RawFormat     PixelFormat Name
------ ----- ------ ---------     ----------- ----
374149  4080   3072 Jpeg       Format24bppRgb 1696088459254.jpg
  1488   460    351 Png       Format32bppArgb 20230902081805.png
  1691   408    400 Png       Format32bppArgb 20230902090304.png
 35780  1050    502 Png       Format32bppArgb 20230923184521.png
 62297   800    600 Jpeg       Format24bppRgb 202310010715.jpg

解像度はエクスプローラーで画像ファイルのプロパティを見れば得られる情報ですが、確認するファイルが多数あるとその作業が大変なのでスクリプトを組んでみました。

コメント