2022/07/01 TechnoStyle

PictureTool 仕様

PictureToolはコンソールアプリケーションです。画像ファイルを加工することができます。

背景色設定、トリミング、リサイズ、回転、反転、パディング設定、マージン設定、背景サイズ設定、背景画像設定、ガンマ補正、グレースケール、2値化、色深度変更、解像度変更、ページ分割、画像フォーマット変更等の処理ができます。

使用方法

書式

pictureTool.exe -i 入力画像ファイル名 -o 出力画像ファイル名 [-r 解像度] [-rst 解像度設定タイミング] [-bc 背景色] [-bcp パディング背景色] [-bcm マージン背景色] [-eo] [(-t トリミング範囲|-tm トリミング範囲マージン指定)] [-s サイズ] [-fa] [-awh] [-rf 回転角度と反転方向] [-p パディング] [-m マージン] [-bs 背景サイズ|-bi 背景画像ファイル名] [-pp 貼り付け位置] [-gc ガンマ補正ガンマ値] [-gs] [-ba 2値化アルゴリズム] [-bt 2値化閾値] [-cd 色深度] [-q 品質] [-c 圧縮形式] [-sp] [-os] [-y] [-omf] [-z 結果ファイル名] [-zmf] [-ec]

引数の仕様は以下の通りです。[]は省略可能な引数です。(|)は何れか一つを指定する引数です。

-i 入力画像ファイル名 入力画像ファイルを指定します。指定可能なファイル形式はJPEG,PNG,BMP,TIFF,GIFです。ファイル名にスペースが含まれる場合は、ダブルクォートで括ってください。
入力画像ファイルを複数指定しつつ、出力画像ファイルをマルチページ対応フォーマットに対応した出力画像形式にすると、複数の入力画像ファイルを束ねて1つの出力画像ファイルとして出力します。
以下のように -i 入力画像ファイル名 の組み合わせで複数指定します。
-i 入力画像ファイル名1 -i 入力画像ファイル名2 -i 入力画像ファイル名3 ...
-o 出力画像ファイル名 出力画像ファイルを指定します。指定可能なファイル形式はJPEG,PNG,BMP,TIFF,GIFです。ファイル名にスペースが含まれる場合は、ダブルクォートで括ってください。
-r 解像度

以下の2通りの何れかの方法で解像度を指定します。単位はDPIです。単位は記述せずに数値のみで指定します。

  1. 1つの解像度 (下記2.の「垂直解像度が空文字列、*、0の何れかの場合の場合」と同等)
  2. カンマ区切りで「水平解像度,垂直解像度」の2つの解像度

    垂直解像度が空文字列、*、0の何れかの場合、水平解像度を元に入力画像の解像度比率と等しい値に自動調整します。

    水平解像度が空文字列、*、0の何れかの場合、垂直解像度を元に入力画像の解像度比率と等しい値に自動調整します。

-rを指定しなかった場合は入力画像の解像度を使用します。

入力画像の解像度の比率と異なる解像度を指定した場合は、出力画像のアスペクト比が崩れる事があります。

-rst 解像度設定タイミング

解像度の設定タイミング(画像処理の前後)を指定します。指定できるタイミングは以下の何れかです。

  • before
  • after

-rstを指定しなかった場合はデフォルト値 before を使用します。

-rを指定しなかった場合は無視されます。

-bc 背景色

-bcp パディング背景色

-bcm マージン背景色

背景色の色コードをRGB24ビット16進数で指定します。指定可能な範囲は 000000 ~ FFFFFF です。

-bcは入力画像ファイルが透過画像、背景サイズ指定、何れかの時に適用されます。

-bcpはパディングの余白に適用されます。

-bcmはマージンの余白に適用されます。

-eo ExifのOrientationの値を元に画像の向きを調整します。
-t トリミング範囲

カンマ区切りで「左上X座標,左上Y座標,幅,高さ」の4つの値を指定します。

-tと-tmを同時に指定すると、-tmが優先されます。

値と単位の指定の仕方は、後述のパラメーターの指定「値」を参照してください。

-tm トリミング範囲マージン指定

上下左右のマージンを指定してトリミングします。主に、余白をカットしたい時に使用します。

-tと-tmを同時に指定すると、-tmが優先されます。

トリミング範囲マージン指定は、以下のように指定します。

指定方法 指定例 内容
上下左右を全て同じ値で指定。 100mm 上下左右の100mmをカットする。
上下、左右をそれぞれ同じ値で指定。 100mm,150mm 上下の100mm、左右の150mmをそれぞれカットする。
上、左右、下をそれぞれの値で指定。 100mm,150mm,120mm 上から100mm、左右の150mm、下から120mmをそれぞれカットする。
上、右、下、左をそれぞれの値で指定。 100mm,150mm,120mm,200mm 上から100mm、右から150mm、下から120mm、左から200mmをそれぞれカットする。

値と単位の指定の仕方は、後述のパラメーターの指定「上下左右」を参照してください。

-s サイズ

カンマ区切りで「幅,高さ」を指定します。

値と単位の指定の仕方は後述のパラメーターの指定「値」を参照してください。

高さが空文字列、*、0の何れかの場合、幅を元に入力画像サイズの比率と等しい値に自動調整します。

幅が空文字列、*、0の何れかの場合、高さを元に入力画像サイズの比率と等しい値に自動調整します。

入力画像サイズの比率と異なる幅と高さを指定した場合は、出力画像のアスペクト比が崩れる事があります。

-fa -sで幅と高さを指定した時に有効となります。アスペクト比維持で指定された幅と高さに収まるように自動調整します。
-awh

-sで幅と高さを指定した時に有効となります。オプションで指定した数値の大小関係を判定し、入力画像の適用する幅と高さを入れ替える処理を行います。

例えば、「-s 200,100 -awh」と指定した場合、入力画像の幅が500ピクセル、高さが1000ピクセルだった場合、入力画像の高さの方が数値が大きいので、引数に指定された幅の数値(200)を高さに適用し、幅は高さの数値(100)を適用します。(-s 100,200 と指定されたように振る舞います)

-rf 回転角度と反転方向

画像を回転反転します。指定可能な回転角度は 90, 180, 270 (全て時計回りの角度)の3つです。

指定可能な反転方向は x (左右反転), y (上下反転) です。90y, 270x のように回転角度と反転方向を同時に指定できます。

-p パディング

上下左右のパディングを指定します。画像を縮小して指定した余白を設定する動きとなります。

パディング処理の前後で画像サイズは変わりません。(-sでサイズを指定した場合は、指定したサイズとなります)

値と単位の指定の仕方は、後述のパラメーターの指定「上下左右」を参照してください。

画像のアスペクト比を維持して、パディング内の領域に収まるように縮小します。縮小された画像は、パディング内の領域の縦横中央に配置します。

このようなアルゴリズムの為、パディングの縦横どちらかが指定値よりも大きな値となる事があります。

-m マージン

上下左右のマージンを指定します。指定した余白を追加する動きとなります。

マージン処理後の画像サイズはマージンの分、大きくなります。(-sでサイズを指定した場合は、指定したサイズ + マージンとなります)

値と単位の指定の仕方は、後述のパラメーターの指定「上下左右」を参照してください。

-bs 背景サイズ

背景のサイズを「幅,高さ」または「用紙サイズ,向き」で指定します。

-bsと-biを同時に指定すると、-biが優先されます。

値と単位の指定の仕方は、後述のパラメーターの指定「上下左右」を参照してください。

指定方法 指定例 内容
幅と高さ 200mm,300mm 幅200mm、高さ300mmとする。
用紙サイズと向き A4,縦 用紙サイズはA3, A4, A5, B4, B5を指定できます。向きは縦, portrait, 横, landscapeを指定できます。
-bi 背景画像ファイル名

背景画像ファイルを指定します。指定可能なファイル形式はJPEG,PNG,BMP,TIFF,GIFです。ファイル名にスペースが含まれる場合は、ダブルクォートで括ってください。

-bsと-biを同時に指定すると、-biが優先されます。

-pp 貼り付け位置

背景に貼り付ける画像の位置を指定します。

-bsを指定した時に有効となります。-bsを指定して-ppを指定しなかった時は、左上寄せとなります。

貼り付け位置は「横,位置,縦,位置」の4つの値を指定します。

指定項目 指定可能な値
左, left, 右, right, 横, horizontal
上, top, 下, bottom, 縦, vertical
位置 数値 + 単位, 中央, center

指定例 内容
右,20mm,縦,中央 右から20mm、縦中央
横,中央,上,10mm 横中央、上から10mm

値と単位の指定の仕方は、後述のパラメーターの指定「上下左右」を参照してください。

背景サイズからはみ出た画像はトリミングしたような状態となります。

-gc ガンマ補正ガンマ値

0より大きい値でガンマ補正ガンマ値を指定します。

1より小さいと暗く、1より大きいと明るくなります。

1は変化無しです。

-gs

グレースケールに変換します。

グレースケールアルゴリズムはNTSC加重平均法を使用します。

-ba 2値化アルゴリズム

2値(白黒)に変換する際に使用する、2値化アルゴリズムを指定します。

指定可能な2値化アルゴリズムは以下の何れかです。

  • 閾値設定: SetThreshold, st
  • ランダムディザリング: RandomDithering, rd
  • オーダードディザリング: OrderedDithering, od
  • 誤差拡散法: ErrorDiffusionDithering, edd

色深度を指定しないと、入力画像の色深度のまま、見た目が2値(白黒)の出力画像となります。

色深度に1を指定すると、2値(白黒)の出力画像となります。

-bt 2値化閾値

0~1の範囲で2値化閾値を指定します。

0に近い程明るく、1に近い程暗くなります。

2値化アルゴリズムが閾値設定の時のみ適用されます。

-btを指定しない時は、デフォルト値 0.5 を使用します。

-cd 色深度

色深度のビット数を指定します。 指定可能な色深度は 1, 4, 8, 16, 24, 32 です。

指定した色深度が出力画像のイメージフォーマットに対応していない場合は、指定通りの色深度にならない事があります。

-q 品質

0~100の範囲で画像の品質を指定します。0は最高圧縮最低品質、100は最低圧縮最高品質です。

出力画像ファイルがjpeg形式の時のみ適用されます。-qを指定しなかった場合は、デフォルト値 90 を使用します。

-c 圧縮形式

指定できる圧縮形式は以下の何れかです。

  • CCITT3
  • CCITT4
  • CCITTT6
  • LZW
  • RLE
  • PackBits
  • None

CCITT4 と CCITTT6 及び、RLE と PackBits は同じ圧縮形式です。

出力画像ファイルがtiff形式の時のみ適用されます。-cを指定しなかった場合は、デフォルト値 None を使用します。

-sp

長い方の辺を基準に画像を2分割します。画像サイズはオリジナルの半分になり、出力画像は2ページとなります。出力画像フォーマットによって出力結果が異なります。出力画像がTiffの場合、マルチページで出力されます。Tiff以外の画像、または-osオプションを指定した場合は、ファイル名の末尾に連番を付与(sample.jpg →sample_1.jpg,sample_2.jpg)します。

-os

出力画像のフォーマットをマルチページとせずに、複数ファイルに出力します。出力画像のフォーマットが、マルチページ対応フォーマットの時に有効です。

-omf

画像を出力するフォルダーが存在しない時に、フォルダーを作成します。

-y 出力画像ファイルが存在していた時に上書きします。
-z 結果ファイル名 処理結果を出力します。結果ファイルが存在していた時は上書きします。ファイル名にスペースが含まれる場合は、ダブルクォートで括ってください。
-zmf

処理結果を出力するフォルダーが存在しない時に、フォルダーを作成します。

-ec 終了コードと結果ファイルに出力される、エラーメッセージの一覧を出力します。

パラメーターの指定

上下左右

CSSのmarginやpaddingと似た書き方です。以下の4通りです。

  1. 「上下左右」の1つの値
  2. カンマ区切りで「上下,左右」の2つの値
  3. カンマ区切りで「上,左右,下」の3つの値
  4. カンマ区切りで「上,右,下,左」の4つの値

単位はピクセル、mm、inch、%で指定可能です。小数を使用できます。ピクセルは数値のみ、mmとinchと%は数値に単位を付けます。

単位 指定例
ピクセル 100
mm 10.5mm
inch 5.2inch
% 50%

加工の順番

以下の順に画像処理を行います。スイッチで指定した処理のみ行います。

  1. 解像度変更 ※ 解像度設定タイミングが処理前の時
  2. ExifのOrientationの値を元に画像の向きを調整
  3. トリミング
  4. リサイズ
  5. 回転と反転
  6. パディング設定
  7. マージン設定
  8. 背景色設定
  9. 背景サイズ設定、または、背景画像設定
  10. ガンマ補正
  11. グレースケール
  12. 2値化
  13. 色深度変更
  14. 解像度変更 ※ 解像度設定タイミングが処理後の時
  15. ページ分割
  16. 指定されたフォーマットで画像ファイル出力

入力画像フォーマットがマルチページの時は、全てのページに対して上記の処理を行います。

複数の出力画像

出力画像が複数ページとなるケースは、以下の通りです。

  1. -spによるページ分割。
  2. 入力画像ファイルがマルチページの時。
  3. 入力画像ファイルを複数指定。

出力画像が複数ページとなる場合の出力画像フォーマットと、パラメーターの組み合わせは、以下の通りです。

  1. マルチページ対応ではないフォーマット。
  2. マルチページ対応フォーマットで -osを指定。
  3. マルチページ対応フォーマットで -osの指定なし。

1と2は、出力画像ファイル名の末尾に、ページNoを付加した複数の画像ファイルとなります。

3は、1つの出力画像ファイルでマルチページ画像ファイルとなります。

使用例

画像ファイルin.jpgの範囲100,100,200,200をトリミングしてout.pngとして出力。

pictureTool.exe -i in.jpg -o out.png -t 100,100,200,200

画像ファイルin.jpgの範囲100,100,200,200をトリミング、幅50ピクセル高さ自動調整でリサイズしてout.jpgとして上書き出力。

pictureTool.exe -i in.jpg -o out.jpg -t 100,100,200,200 -s 50,* -y

画像ファイルin.jpgの範囲10.5mm,10.5mm,50mm,20mmをトリミングしてout.pngとして出力。

pictureTool.exe -i in.jpg -o out.png -t 10.5mm,10.5mm,50mm,20mm

画像ファイルin.jpgの範囲10mm,10mm,50mm,20mmをトリミング、幅30mm高さ自動調整でリサイズしてout.jpgとして上書き出力。

pictureTool.exe -i in.jpg -o out.jpg -t 10.5mm,10.5mm,50mm,20mm -s 30mm,* -y

画像ファイルin.jpgの上下左右50ピクセルをトリミングしてout.pngとして出力。

pictureTool.exe -i in.jpg -o out.png -tm 50

画像ファイルin.jpgの上下100ピクセル、左右50ピクセルをトリミングしてout.pngとして出力。

pictureTool.exe -i in.jpg -o out.png -tm 100,50

画像ファイルin.jpgの向きを調整、品質100でout.jpgとして上書き出力。

pictureTool.exe -i in.jpg -o out.jpg -eo -q 100 -y

画像ファイルin.jpgの向きを右に90度回転してout.jpgとして上書き出力。

pictureTool.exe -i in.jpg -o out.jpg -rf 90 -y

画像ファイルin.jpgをアスペクト比維持で幅600ピクセル高さ600ピクセルに収まるようにリサイズしてout.jpgとして上書き出力。

pictureTool.exe -i in.jpg -o out.jpg -s 600,600 -fa -y

画像ファイルin.jpgをサイズはそのままで上下左右に10mmパディングを設定してout.jpgとして上書き出力。

pictureTool.exe -i in.jpg -o out.jpg -p 10mm -y

画像ファイルin.jpgの上下左右に10mmマージンを設定してout.jpgとして上書き出力。

pictureTool.exe -i in.jpg -o out.jpg -m 10mm -y

画像ファイルin.jpgをA4縦の縦横中央に配置してout.jpgとして上書き出力。

pictureTool.exe -i in.jpg -o out.jpg -bs A4,portrait -pp horizontal,center,vertical,center -y

画像ファイルin.tiffを背景色白、色深度24ビット、圧縮形式PackBitsでout.tiffとして上書き出力。

pictureTool.exe -i in.tiff -o out.tiff -bc ffffff -cd 24 -c PackBits -y

画像ファイルin.tiffをガンマ値2.0(明るくする)でガンマ補正して、圧縮形式PackBitsでout.tiffとして上書き出力。

pictureTool.exe -i in.tiff -o out.tiff -gc 2.0 -c PackBits -y

画像ファイルin.tiffを誤差拡散法で2値化して、色深度1ビット、圧縮形式PackBitsでout.tiffとして上書き出力。

pictureTool.exe -i in.tiff -o out.tiff -ba edd -cd 1 -c PackBits -y

画像ファイルin.tiffを閾値0.4で2値化して、色深度1ビット、圧縮形式PackBitsでout.tiffとして上書き出力。

pictureTool.exe -i in.tiff -o out.tiff -ba st -bt 0.4 -cd 1 -c PackBits -y

画像ファイルin.tiff(マルチページ)をページ分割してout.tiff(マルチページ)として上書き出力。

pictureTool.exe -i in.tiff -o out.tiff -sp -y

画像ファイルin.tiff(マルチページ)をページ分割してout.tiff(ページNo付き複数ファイル)として上書き出力。

pictureTool.exe -i in.tiff -o out.tiff -sp -os -y

画像ファイルin1.tiff,in2.tiff,in3.tiffを束ねてout.tiff(マルチページ)として上書き出力。

pictureTool.exe -i in1.tiff -i in2.tiff -i in3.tiff -o out.tiff -y

リターンコード

リターンコードは以下の通りです。

0 正常終了
1 入力画像ファイルが指定されていません。
2 出力画像ファイルが指定されていません。
3 結果ファイルが指定されていません。
4 入力画像ファイルが存在しません。 '入力画像ファイル名'
5 画像を出力するフォルダーが存在しません。 '出力画像ファイル名'
6 処理結果を出力するフォルダーが存在しません。 '結果ファイル名'
7 出力画像ファイルが存在します。 '出力画像ファイル名'
8 解像度の指定が間違っています。 '解像度'
9 解像度設定タイミングの指定が間違っています。 '解像度設定タイミング'
10 指定された背景色は色コードとして認識できません。 (RGB24ビット16進数で指定してください) '背景色'
11 トリミング範囲の指定が間違っています。 'トリミング範囲'
12 トリミング範囲マージン指定の指定が間違っています。 'トリミング範囲マージン指定'
13 サイズの指定が間違っています。 'サイズ'
14 幅の指定が間違っています。 '幅'
15 高さの指定が間違っています。 '高さ'
16 回転角度と反転方向の指定が間違っています。 '回転角度と反転方向'
17 パディングの指定が間違っています。 'パディング'
18 マージンの指定が間違っています。 'マージン'
19 背景サイズの指定が間違っています。 '背景サイズ'
20 背景画像ファイルが指定されていません。
21 背景画像ファイルが存在しません。 '背景画像ファイル名'
22 貼り付け位置の指定が間違っています。 '貼り付け位置'
23 ガンマ補正ガンマ値の指定が間違っています。 'ガンマ補正ガンマ値'
24 2値化アルゴリズムの指定が間違っています。 '2値化アルゴリズム'
25 2値化閾値の指定が間違っています。 '2値化閾値'
26 色深度の指定が間違っています。 '色深度'
27 品質の指定が間違っています。 '品質'
28 圧縮形式の指定が間違っています。 '圧縮形式'
29 入力画像ファイルのフォーマットは対応していないフォーマットです。 'フォーマット'
30 出力画像ファイルのフォーマットは対応していないフォーマットです。 'フォーマット'
31 読み込みリトライ回数を超えました。指定された入力画像ファイルは読み込めませんでした。 '入力画像ファイル名'
32 指定された入力画像ファイルは画像として認識できません。 (対応していない画像フォーマット、画像ファイルではない、画像ファイルが壊れている、など) '入力画像ファイル名'
33 トリミング範囲が存在しません。 (トリミング範囲の幅または高さがマイナス値)
34 読み込みリトライ回数を超えました。指定された背景画像ファイルは読み込めませんでした。 '背景画像ファイル名'
35 指定された背景画像ファイルは画像として認識できません。 (対応していない画像フォーマット、画像ファイルではない、画像ファイルが壊れている、など) '背景画像ファイル名'
36 書き込みリトライ回数を超えました。指定された出力画像ファイルは書き込めませんでした。 '出力画像ファイル名'
99 例外が発生しました。 'エラーメッセージ'

注意事項

  • サイズ、解像度、色深度を指定しなかった時は、入力画像ファイルの値を引き継ぎます。
  • 入力画像ファイル、出力画像ファイル、共にtiffで、圧縮形式を指定しなかった時は、入力画像ファイルの圧縮形式を引き継ぎます。
  • インデックスカラー(パレットカラー)の画像は、RGBカラーに変換してから画像処理を行います。 色深度を指定しない場合は、画像を出力する際に元のインデックスカラーの設定を復元しますが、パレット情報は異なる内容となります。 ※ 色深度8ビット(256色)以下の画像は、ほぼインデックスカラーです。
  • 画像フォーマットの多くは、異なる水平解像度と垂直解像度に対応していますが、一般的な画像ビューアーは、水平解像度と垂直解像度が同じ値である事(正方形ピクセル)を前提としています。 この為、異なる水平解像度と垂直解像度が設定された画像は、想定したアスペクト比の画像として表示されない事があります。 ※ 異なる水平解像度と垂直解像度の画像を適切に表示する為には、異なる水平解像度と垂直解像度に対応した画像ビューアーを使用してください。
  • 画像処理の際、各値は四捨五入した整数値のピクセルに変換されます。小さな値を指定した場合は、整数値への変換の誤差が感じられる事があります。
  • リサイズ、トリミング、パディング設定、マージン設定、背景サイズ設定、背景画像設定、グレースケール、2値化、解像度変更などの処理を行うと、入出力の画像フォーマットが同じであってもExifは削除されます。

ライセンスについて

PictureToolは、eDocArrangementの購入者にライセンスされます。試用については、eDocArrangementと同じ期間、試用できます。

動作に必要なライブラリー

.NET Framework 4.6.2 以降