pxtally 1.1.0

CLI tool to tally pixels.
pxtally-1.1.0 is not a library.

pxTally

GitHub repository

これは何?

画像内のピクセルを色空間ごとに分類し、集計するCLIツールです。Rust製。

集計結果は以下のようになります。(HSLhueについて集計)

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-msvci686-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.png
  • pxtally 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

このままでは大して変わらない画像が出力されると思います。

このコマンドでは、lightnesschromahueの値を一定に変更できます。 例えば、lightness0.2にするときは、以下のようになります。

例: pxtally img-oklch --input C:\Users\Public\Pictures\something.png --output ./test.png --lightness 0.2

色空間ごとのヘルプ出力

それぞれの細かいオプションなどは、pxtally <COMMAND> --helppxtally <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)

GitHub