bmptg v2.21 各種加工変換が可能な、bmp,tga 画像ファイル相互変換ツール ■はじめに bmp,tga および ヘッダ無しベタ画像ファイル を相互に変換 するためのコマンドライン・ツール. ゲーム作成時の画像データ変換での使用が多いため、そのため の機能(複数ファイルの一括変換や、減色・拡縮 等)がいくつかあり. ■ 処理 ・内部では、clut付画像は 8bit色で、多色画は 32ビット色画で  処理. ・画像のα値は 00:透明〜0xFF:不透明. α無画は0xFFとして、抜色はα=0として処理. ■ 使い方 usage> bmptg [-opts] file(s) 複数ファイル指定、ワイルドカード(*?)指定可能. オプション> -f[FMT] :FMT 出力フォーマットをFMT(bmp tga tim bin non)に. bin はヘッダ&clut無ピクセルのみのベタ出力. non は経過メッセージ表示のみで、ファイル変換無. -b[N] 出力画像をN bit色にする. (N=1,4,8,12,15,16,24,32). ビット数の少ない色数への変換は下位ビットの切り捨て や簡易減色. ディザをするなら -xd を併用すること. -b[STR] STR=A2I6,A3I5,A4I4,A5I3,A6I2. 256色指定で、ピクセル上位ビットにα値があるような clutの減色(-cp3)を行う. -v- 処理メッセージを減らす. -vで経過メッセージ表示(デフォルト) [ファイル名] @resfile resfileより、ファイル名やオプションを取得. -o[FILE] 1ファイル変換での出力名を FILE にする. -d[DIR] 出力ディレクトリをDIRにする. -s[DIR] 入力ディレクトリをDIRにする. -ed[EXT] 出力の拡張子を EXT にする. -es[EXT] 入力の省略時拡張子をEXTにする. -u 入力ファイルのほうが出力ファイルよりも日付が新しければ変換. [バイナリ入力] -ig[W:H:B:E] Bビット色W*Hのベタ画(またはバイナリファイル)入力. -is[N] 入力FILE先頭N byteスキップ. [色関係] -ib[N] 入力された時点(他の変換の前に)で N bit色画にする. 単純に下ビットを切り捨てる. (G,R,Bの順にビット数を保持) 24 = R8G8B8 23 = R8G8B7 22 = R7G8B7 21 = R7G7B7 20 = R7G7B6 : : 6 = R2G2B2 5 = R2G2B1 4 = R1G2B1 3 = R1G1B1 -if clut画をフルカラー(24or32ビット色)にして入力. -xd[N:T] ディザでN bit色に減色. (T:0-7) 出力の bpp は -b[N] で指定するので、この bit 色数は 色(RGB)が何ビットか、ということ. Nは -ib[N] のNに同じ. Tは動作タイプ. 0:ディザ無し 1:組織的ディザ 2x2 2:組織的ディザ 4x4 3:組織的ディザ 8x8 +0x80 : A,G と R,B とでディザマトリックスを対にする +0x100: αもディザする. 有効ビット数はGに同じ -cq[ARGB] ARGB を BGRA や AGRB 等の順に並び換. -t[N] 明るさを N% にして出力. -cm[C] 各ピクセルに色Cを乗ずる. -cg モノクロ化. ※ -cmの直前に行われる. -cf[C] 抜色を C (省略時000000)に. (-ca[C] -cf拡張で抜色周辺αぼかし. 実験物) -an 入力画α値を無視(α無扱い). -ao αチャンネルをmask画像化したファイルを出力. -ari 入力α反転. -aro 出力α反転. [clut関係] -cpc[FILE] clut内容をcのテーブルとしてテキスト出力. -cp[N] 固定clut設定、または、減色アルゴリズム指定. -cp1:日本の古いパソコン系の色値を基本としたパレット. (3ビット色はG1R1B1, 8ビット色は G3R3B2 となる. 4ビット色は適当). -cp2:MS-Windowsなシステムclut 16色, 256色. -cp3:メディアンカット法の減色(yuv) (デフォルト). -cp4:メディアンカット法の減色(rgb) お手軽実装なせいか得意不得意があるので見て確認。 -cp5:使用頻度をベースにした減色. -cp3,4,5 では、元画の色数が指定色数以内に収まる場合は、 減色せずに変換する。 α付減色を選択すると-cp1,2,5では、-cp3に切り替えられる. -cn[N] 減色時に1<=2の場合、-cp1,2,5は-cp3(メディアンカット法)に切替. -ci[I] clut画の抜色番号をIに. -cc[I:C] clut の i番を色 C に置換. i=0..255 で、-ccを複数指定可能. -co[N] clutの添え字/中身を N個ローテートする. (-cis[N]も同じ) -cb[N] tgaでの出力clutのBPP. [サイズ変換] -xrs[W:H:K] W*Hに拡縮. H を省略すると、横幅と同じ比率になる縦幅が指定される. 多色画はバイリニアで処理。 (だが、clut画は単純な処理なので実用性低) -xrp[N] 縦横の長さをN%に拡縮. H を省略すると W に同じ(-xrp150 なら縦横 1.5倍). 多色画はバイリニアで処理。 (だが、clut画は単純な処理なので実用性低) -xn 画像サイズを無透明範囲のみにする. バストアップ等で回りの透明色部分を除くような場合向け. -mc[W:H]指定時は、W*H升目単位で狭める. -xv[W:H:X:Y] W*H画の(X,Y)にロードした画像にする. W,Hは 0なら画像サイズ. -xv+10:+5 のように+で記述すれば画像サイズに対する増分になる. 例) -xv640:480:200:100 抜き色で埋められた640x480画の(200,100)に指定ファイルを ロードした画像を生成. -xl[M:N] -xv+M:+N:M:N に同じ. 画像の始点(0,0)を(M,N)に移動した画像を作る. [その他の変換] -xe 圧縮して出力(tgaのみ bmpは未対応). -xx x方向反転. -xy y方向反転. -xb ピクセル値のビット反転(2値画での反転を想定) -xg[N] RGB(0,0,0)を透明色とした画像を生成するために、 α<=Nのピクセルを(0,0,0)に、元からの (0,0,0)は(0,0,M)に RGB各値がM未満のものははMに変換. (Mは出力BPPのblueのビット数に依存. 大体8ぐらい?) -xca 左上(0,0)の色を抜き色として、α=0の色で、4隅からをペイント. ※ラフ状態のバストアップ画の周りを抜くのを想定. 画の中の抜色には対応できないが、とりあえずの仮絵作成向け. -xf[..] ぼかしフィルタ処理. -xf1:N ぼかし[3x3:4/2/1]をN回. -xf2:N:LeapARGB 実験:-xf1拡張でぼかし画像と通常画を合成 -xf2:N:LeapARGB:RGB1:RGB2 実験:さらに2色から生成したマスクも反映 ■ 配布とか いろいろな事情により、現状、無断転載禁. まあ、使用目的はご自由に. 当然、無保証. ソースの引用/流用とかについては、改造や改良部分とかの著作権やら 特許やらの権利で他者の利用や(同様の)改変の自由を制限する ような真似をせんかぎりは、仕事や著作物に使うのでもokです. もちろん自己責任で. 流用部分があなたの著作物になるわけではないし、 己が作ったときの参照や流用の権利を把握してるわけでないので. tenka@6809.net http://www.6809.net/tenk/