pxTally
これは何?
画像内のピクセルを色空間ごとに分類し、集計するCLIツールです。Rust製。
集計結果は以下のようになります。(HSLのhueについて集計)
PS path\to\pxtally> pxtally.exe hsl hue --path C:\Users\Public\Pictures\something.png
hsl hue
0.00 -> 30.00 : 8.98% ( 94208 px)
30.00 -> 60.00 : 8.69% ( 91136 px)
60.00 -> 90.00 : 8.79% ( 92160 px)
90.00 -> 120.00 : 7.71% ( 80896 px)
120.00 -> 150.00 : 7.71% ( 80896 px)
150.00 -> 180.00 : 8.69% ( 91136 px)
180.00 -> 210.00 : 8.79% ( 92160 px)
210.00 -> 240.00 : 7.71% ( 80896 px)
240.00 -> 270.00 : 7.71% ( 80896 px)
270.00 -> 300.00 : 8.69% ( 91136 px)
300.00 -> 330.00 : 8.79% ( 92160 px)
330.00 -> 0.00 : 7.71% ( 80896 px)
avr : 177.7155
集計結果は上記のような整形された標準出力の他、JSON形式でも出力できます。
JSONのスキーマはschemasディレクトリにあります。
現在対応している色空間は以下。
HSL: (hue, saturation, lightness)OKLCH: (lightness, chroma, hue)
余力があれば追加します。
また、追加の機能として、OKLCHに変換した後、用途によって色を変更した画像を出力する機能があります。
使い方
ダウンロードはReleasesの最新版から使用環境にあった実行ファイルをダウンロード・展開してください。
(※現在、x86_64-pc-windows-msvcとi686-pc-windows-msvc用のビルドしかありません)
実行ファイルのある場所を、仮にpath/to/pxtallyとします。
コマンドプロンプト、PowerShellなどのシェルで、path/to/pxtallyに移動します。
その後、Windowsの場合、pxtally.exe --help入力し、決定します。(他のOSの場合は実行ファイルの名前を適宜読み替えてください)
使い方が出てくるので、それに従って使用してください。
なお、「パスを通す」の意味が分かる方は、そちらの方法でも大丈夫です。
基本的なコマンドとオプション
img-oklch以外
pxtally <colorspace> <component> --path <PATH>のように使用します。
例:
pxtally hsl saturation --path C:\Users\Public\Pictures\something.pngpxtally oklch chroma --path C:\Users\Public\Pictures\something.png
整形されたものがデフォルトで標準出力されます。
これを抑えたいときは、--no-printのオプションを付けてください。
例: pxtally hsl saturation --path C:\Users\Public\Pictures\something.png --no-print
JSON形式でも出力できます。標準出力に出力したいときは--jsonオプションを付けます。--no-printをつけていても出力されます。
例: pxtally hsl saturation --path C:\Users\Public\Pictures\something.png --json
JSON形式のファイルで出力したい場合は、--json-output <PATH>を入力してください。
例: pxtally hsl saturation --path C:\Users\Public\Pictures\something.png --json-output ./test.json
img-oklch
pxtally img-oklch --input <INPUT_PATH> --output <OUTPUT_PATH>のように使用します。
例: pxtally img-oklch --input C:\Users\Public\Pictures\something.png --output ./test.png
このままでは大して変わらない画像が出力されると思います。
このコマンドでは、lightness、chroma、hueの値を一定に変更できます。
例えば、lightnessを0.2にするときは、以下のようになります。
例: pxtally img-oklch --input C:\Users\Public\Pictures\something.png --output ./test.png --lightness 0.2
色空間ごとのヘルプ出力
それぞれの細かいオプションなどは、pxtally <COMMAND> --helpやpxtally <COMMAND> <SUBCOMMAND> --helpなどを参照してください。
例:
PS path\to\pxtally> pxtally.exe --help
CLI tool to tally pixels.
Usage: pxtally.exe <COMMAND>
Commands:
hsl Analyze under HSL color space
oklch Analyze under OKLCH color space
img-oklch Output the image processed under OKLCH
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
hsl
PS path\to\pxtally> pxtally.exe hsl --help
Analyze under HSL color space
Usage: pxtally.exe hsl <COMMAND>
Commands:
hue, -H About hue
saturation, -s About saturation
lightness, -l About lightness
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
oklch
PS path\to\pxtally> pxtally.exe oklch --help
Analyze under OKLCH color space
Usage: pxtally.exe oklch <COMMAND>
Commands:
lightness, -l About lightness
chroma, -c About chroma
hue, -H About hue
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
img-oklch
PS path\to\pxtally> pxtally.exe img-oklch --help
Output the image processed under OKLCH
Usage: pxtally.exe img-oklch [OPTIONS] --input <INPUT> --output <OUTPUT>
Options:
-i, --input <INPUT> Path to input image
-o, --output <OUTPUT> Path to output image
-l, --lightness <LIGHTNESS> Override value for lightness
-c, --chroma <CHROMA> Override value for chroma
-H, --hue <HUE> Override value for hue
-h, --help Print help
使用ライブラリ
いずれも敬称略。ありがとうございます。
- clap / Kevin B. Knapp and Clap Contributors
- image / The image-rs Developers
- color / Raph Levien, Bruce Mitchener, Jr., Tom Churchman, Jordan Johnson
- serde / Erick Tryzelaar, David Tolnay
- serde_json / Erick Tryzelaar, David Tolnay
ライセンス
MITにて配布いたします。
作成者
月波 清火 (tukinami seika)