Appearance
cdm util
cdm util サブコマンドで、ID の生成や画像加工などのユーティリティ機能を提供します。
cdm util <subcommand> [options]| サブコマンド | 用途 |
|---|---|
util gen-id | ノートブックファイル等で利用する ID を生成 |
util image info | 画像(PNG)のサイズ等の情報を取得 |
util image resize | 画像(PNG)を縮小 |
util image crop | 画像(PNG)を切り取り |
ID の生成
cdm util gen-id
-n, --count <n> 生成する個数(1–1000、省略時 1)
-f, --format <fmt> 出力形式: text | json(既定: text)ノートブックファイル内などで利用する ObjectId 形式の ID を生成します。
- SQLブロックやチャートの
view_id、インラインチャートのidなど、cdm notebook formatで自動付与されない ID を手動で記述する必要がある場合に利用します- ページ属性やSQLブロック属性の
idなど、cdm notebook formatで自動付与される ID については、可能な限り format に任せてください(自動修復について)
- ページ属性やSQLブロック属性の
- 生成される ID は
ObjectId形式(24文字の16進数文字列)です
出力形式
text(既定)
生成した ID を1行ずつ出力します。
$ cdm util gen-id
69def372425493d783e66620
$ cdm util gen-id -n 3
69def372425493d783e66620
69def372425493d783e66621
69def372425493d783e66622json
json
{
"ids": [
"69def372425493d783e66620",
"69def372425493d783e66621",
"69def372425493d783e66622"
]
}利用例
bash
# ID を1つ生成
cdm util gen-id
# ID を複数生成
cdm util gen-id -n 3
# スクリプト用に JSON 出力
cdm util gen-id -n 3 -f json画像変換について
cdm util image サブコマンドは、PNG 画像の情報取得・縮小・切り取りを行うローカルなユーティリティです。
cdm notebook render page / render chart で書き出した画像を、AI エージェントに渡す前の加工用途での利用を想定しています。ページ全体のような大きい画像は、いったん縮小して全体のレイアウトを把握し、必要な箇所だけを原寸から切り取って詳細を確認する、という流れで利用します。
- 入出力はファイルパスで指定します
- 入力・出力ともに PNG を対象とします
- ネットワーク・認証は不要で、ローカルで完結します
renderで書き出した原寸の画像はそのまま残るため、人が見る場合は原寸の画像を利用できます
縮小は領域平均(ボックスフィルタ)で行い、チャートの細い線やテキストのレイアウトを保ったまま縮小できます。ただし縮小した画像は全体のレイアウト把握を目的としたもので、多くの AI モデルは入力画像を内部で縮小して処理するため、細部や文字をはっきり確認したい場合は原寸の画像を crop で切り取って利用してください。
画像情報の取得
cdm util image info <file>
-f, --format <fmt> 出力形式: text | json(既定: text)指定した PNG 画像のサイズ等の情報を取得します。
<file>には PNG 画像のファイルパスを指定します- 縮小や切り取りを行う前に、原寸のサイズを把握する起点として利用できます
- 入力が存在しない、PNG でない、破損している場合は、エラーを出力して
exit 1で終了します - 主たる出力(サイズ情報)は stdout に出力します(
resize/cropのサマリは stderr)
出力形式
text(既定)
$ cdm util image info screenshot.png
Width 4000
Height 3000json
json
{
"width": 4000,
"height": 3000
}利用例
bash
# 原寸サイズを確認
cdm util image info screenshot.png
# スクリプト用に JSON 出力
cdm util image info screenshot.png -f json画像の縮小
cdm util image resize <file>
--scale <float> 縮小倍率(例: 0.125 で 1/8)
-o, --output <path> 出力先(ファイルパス または ディレクトリ)PNG 画像を指定した倍率で縮小します。
<file>には PNG 画像のファイルパスを指定します--scaleに縮小倍率を指定します(0 < scale <= 1)- 例えば
--scale 0.125を指定すると、縦横ともに 1/8 のサイズに縮小されます - 出力サイズは、元のサイズに
scaleを掛けて四捨五入したサイズになります(最小 1px)
- 例えば
- 縮小は領域平均(ボックスフィルタ)で行います
- 入力が存在しない、PNG でない、破損している場合は、エラーを出力して
exit 1で終了します
出力先
--outputで出力先を指定できます- ファイルパス(拡張子
.png)を指定した場合、そのパスに書き込みます - ディレクトリを指定した場合、ディレクトリ内にファイルを生成します(ファイル名は入力名から自動生成され、同名ファイルがある場合は連番を付与します)
- 中間ディレクトリは必要に応じて自動作成します
- ファイルパス(拡張子
--outputの指定がない場合は、--output ./として処理します
出力例
縮小結果のサマリは stderr に出力されます。
$ cdm util image resize screenshot.png --scale 0.125 -o overview.png
Input screenshot.png (4000x3000)
Scale 0.125
Output overview.png (500x375)利用例
bash
# 1/8 に縮小して全体把握用の画像を作る
cdm util image resize screenshot.png --scale 0.125 -o overview.png
# ディレクトリに自動命名で出力
cdm util image resize screenshot.png --scale 0.25 -o out/画像の切り取り
cdm util image crop <file>
--rect <x,y,w,h> 切り取る矩形(左上 x, 左上 y, 幅 w, 高さ h)
--rect-scale <float> --rect の座標を、縮小した画像基準で指定する場合に指定
-o, --output <path> 出力先(ファイルパス または ディレクトリ)PNG 画像の指定した矩形領域を切り取ります。
<file>には PNG 画像のファイルパスを指定します--rectに切り取る矩形を、カンマ区切りの整数4つ(左上 x, 左上 y, 幅 w, 高さ h)で指定します- 切り取りは原寸の画像に対して行うことを基本とします
- 縮小して全体を把握した画像で当たりをつけた領域を、原寸の画像から切り取ることで、対象部分を解像度を保ったまま確認できます
- 出力先(
--output)の挙動はresizeと同じです - 入力が存在しない、PNG でない、破損している場合は、エラーを出力して
exit 1で終了します
縮小した画像基準での座標指定
--rect-scale を指定すると、--rect の座標を「その縮小率で縮小された画像を基準とした座標」として解釈し、内部で原寸基準に変換してから切り取ります。
- 例えば、
resize --scale 0.125で作った 1/8 の画像を見て切り取りたい領域を決めた場合、その座標をそのまま--rectに渡し、--rect-scale 0.125を指定すれば、原寸の画像の対応する領域が切り取られます--rect-scaleには、その画像を作ったときのresizeの--scaleと同じ値を指定してください
--rect-scaleを省略した場合、--rectは原寸画像基準の座標として扱われます- 変換後の座標は四捨五入で整数化されます。変換後の矩形が画像の範囲をはみ出す場合は、画像の境界に合わせて調整(クランプ)されます
出力例
--rect-scale を指定した場合、原寸基準に変換した後の矩形もあわせて表示されます。
$ cdm util image crop screenshot.png --rect 100,50,200,150 --rect-scale 0.125 -o detail.png
Input screenshot.png (4000x3000)
RectScale 0.125
Rect 100,50,200,150 -> 800,400,1600,1200
Output detail.png (1600x1200)利用例
bash
# 原寸基準で切り取る
cdm util image crop screenshot.png --rect 800,400,1600,1200 -o detail.png
# 1/8 に縮小した画像で見た座標をそのまま渡して、原寸から切り取る
cdm util image crop screenshot.png --rect 100,50,200,150 --rect-scale 0.125 -o detail.png
# ディレクトリに自動命名で出力
cdm util image crop screenshot.png --rect 100,50,200,150 --rect-scale 0.125 -o out/