Substance Designerに取り込む画像素材の前処理

Substance Designerに取り込む画像素材の前処理

大きさはそのまま余白をつける

サブスタンスデザイナーに読み込む画像は、デフォルト設定で2のべき乗サイズに縦横幅が拡大される。しかし、複数の一連の画像パーツを読み込む場合などは相対的な大きさをキープしたままにしたい。拡大処理による画像の劣化も回避したい。そこで複数の画像に一括で2のべき乗サイズまで余白をつけるプログラムを作った。

以前に似たものを作っているが ↓

これらは画像フィルターとして使ったサブスタンスから出力された画像を後処理する事を考慮したもので、今回は画像素材を読み込む際に前処理を施すもの。コードは上記2つを合わせたような物。

今回のプログラムで想定している利用用途は、タイルサンプラーで配置する画像を用意する事。

使い方

ソースコードはここに。

https://github.com/logicalmodelin/LGMLtools/tree/236cac40ddd5ff905e919880f32722a83ce40866/blog2023/blog20230905_prepare_image_border

バッチファイルに画像が保存されているフォルダもしくは複数選択した画像(9個まで)をドラッグアンドドロップすると、画像が上書きされ、一番近い2のべき乗サイズまで真ん中合わせで余白が追加される。容赦なく上書きされるので注意。

※バッチファイルは自分の環境にわせてpythonの仮想環境をアクティベートする処理が入っているので、そのあたりは利用する環境に合わせて調整する

処理の詳細

実際は、コマンドでいろいろなことができる。

  • 任意のサイズの余白をつける
  • 最低サイズ指定(すべての画像サイズをそろえる場合などに使う)
  • 真ん中寄席以外の配置
  • 背景色の指定
  • ファイルを複数処理する際のサイズの統一
  • 正方形サイズに強制

具体的に処理は以下の流れになっている。

一度余白全部削除 -> 任意のサイズの余白追加 -> 最低サイズ指定あればそこまで大きくする -> 2のべき乗吸着指定あればさらに調整

usage: prepareImageForSdInput.py [-h] [-o OUTPUT_DIR] [--overwrite] [-bw BORDER_WIDTH] [-al {CENTER,TL,BR}] [-p2] [-sq] [-min MIN_SIZE MIN_SIZE] [--auto_min_size] [-bg BG_COLOR BG_COLOR BG_COLOR BG_COLOR] [src_images ...]

画像サイズに適切に余白をつける * 一度余白全部削除 -> * 任意のサイズの余白追加 -> * 最低サイズ指定あればそこまで大きくする -> * 2のべき乗吸着指定あればさらに調整

positional arguments:
  src_images            source image

options:
  -h, --help            show this help message and exit
  -o OUTPUT_DIR, --output_dir OUTPUT_DIR
                        output image dir
  --overwrite           overwrite output image file
  -bw BORDER_WIDTH, --border_width BORDER_WIDTH
                        transparent border width
  -al {CENTER,TL,BR}, --align {CENTER,TL,BR}
  -p2, --power_of_2     output image size is power of 2.
  -sq, --square         output image size is square.
  -min MIN_SIZE MIN_SIZE, --min_size MIN_SIZE MIN_SIZE
                        minimum final size
  --auto_min_size       when more than 2 images are specified,the min_size argument is automatically determined from the size of the input image.
  -bg BG_COLOR BG_COLOR BG_COLOR BG_COLOR, --bg_color BG_COLOR BG_COLOR BG_COLOR BG_COLOR
                        background color like 255 255 255 255

Previous post AfterEffects: VoluMax の疑似3Dに Trapcode Particular のカメラを合わせる
Next post 大きなイラストから各パーツを自動抽出して個別ファイルに保存する#1(Python)