サイズや解像度が異なる画像ファイルの情報を一覧するスクリプトを作成しました。
<#
.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
解像度はエクスプローラーで画像ファイルのプロパティを見れば得られる情報ですが、確認するファイルが多数あるとその作業が大変なのでスクリプトを組んでみました。
コメント