Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】画像ファイルの色数を取得する

System.Drawing.Imaging名前空間のPixelFormat列挙型を使う。ImageクラスのFromFileメソッドで画像を読み込み、PixelFormat列挙型を確認すればよい。

最初にAdd-Typeコマンドレットを使用して、System.Drawing名前空間のクラスを使えるようにする。

PS > Add-Type -AssemblyName System.Drawing
PS > $img = [Drawing.Image]::FromFile("D:\image\mono.png")
PS > $img.PixelFormat
Format1bppIndexed
PS > $img = [Drawing.Image]::FromFile("D:\image\256.gif")
PS > $img.PixelFormat
Format8bppIndexed
PS > $img = [Drawing.Image]::FromFile("D:\image\fullcolor.jpg")
PS > $img.PixelFormat
Format24bppRgb

戻り値は文字列で、それぞれ以下に対応する。

  • Format1bppIndexed → モノクロ2階調(1ピクセルあたり1ビット、いわゆる「白黒」)
  • Format8bppIndexed → 256色(1ピクセルあたり8ビット、いわゆる「にごろ」)
  • Format24bppRgb → 1677万色(1ピクセルあたり24ビット、いわゆる「フルカラー」)

戻り値(PixelFormat列挙型)はそのほか多数用意されている。詳細は以下を参照のこと。

https://learn.microsoft.com/ja-jp/dotnet/api/system.drawing.imaging.pixelformat?view=dotnet-plat-ext-7.0