画力がないなら立体を作ればいい

「何を作る」より「どう作るか」を考えたい人

XnViewでPNGのキャンバスに追加した余白に指定色が反映されない(透明色が白になるだけで色指定が無効)

(約 1,300文字の記事です。)
f:id:yamato-tsukasa:20190123210132p:plain
XnViewは無料の画像編集ソフト、ビューワーも兼ねる。これはキャンバスサイズの調整やキャンバスの背景(余白)塗りつぶしが便利。
今まではキャンバスの背景余白を白で塗りつぶしていたが、元が透明色を持つPNG画像の背景色を白以外のカラーに指定してみても反映されず真っ白。なぜ?
Ver.2.47での結果です。

更新履歴

2019/09/16 わかりにくい部分を加筆修正。最後におまけリンクも追加。

元画像がJpegなら問題ない

だが元画像が透明背景のPNGファイルだと、なぜか余白に指定したカラーが塗られずに透明のままキャンバスサイズだけがリサイズされる。要するにキャンバスサイズを拡大するように指定してその余白を埋める色を指定しても無視されて透明のまま。なぜ?

f:id:yamato-tsukasa:20190916144741p:plain

赤を指定しても透明色で塗られる……。

お手軽解決方法

Jpeg出力する(笑)これで万事解決。だが本質的ではない。

一時的な解決方法

これだ。解決方法はシンプル。
ツール>オプション
f:id:yamato-tsukasa:20190123210044p:plain

これにして画像を加工してPNG出力すると色が付く。
ただし、弊害として背景が透明PNGがXnView上では市松模様にならない。困る。なので出力後に元に戻す必要がある。面倒。

(参考)
https://newsgroup.xnview.com/viewtopic.php?t=34549

恒久的な解決方法

  1. 一時的な解決方法で「一括処理」のスクリプトに名前を付けて保存する。
  2. その後、再び元の設定に戻す
  3. スクリプトを呼び出して実行するとなぜかきちんと色つきPNGが出力される(追加した余白のみに色が付き、元々透明部分はそのまま透明)

一括処理のスクリプトの保存については、ブラウザ画面にてファイルを選択し、CTRL+Uを押すと出てくるウィンドウを観察して下さい。

この問題点は、スクリプトを呼び出した後に色を変更すると再びNG状態でPNGが出力されることだ。色を変えるならば最初の手順からやり直して別名でスクリプトを保存する必要がある。
一度、一時的な解決方法で色味を決定し、それが決まったらスクリプトを別名保存し、以後はそれを呼び出して使い回し、オプション設定そのものは元に戻す(透明を市松模様に表示させる)。これで快適。

スクリプトのファイル名とその当時のオプション設定がどこかに紐付いて保存されているらしい

スクリプトの中身にはオプション設定の保存がない。だがNGだったスクリプトファイルをリネームしてOKスクリプトファイルに変更して実行したらOKになった。どうやら本体側の現在のオプション設定とスクリプトファイル保存当時のオプション設定とは「個別に管理されている」らしい。そして保存当時の設定内容はスクリプトファイル名と紐付いているらしい。


ま、深く考えずに上記の恒久的な解決方法で回避すればいいと思う。スクリプトファイルの保存が肝ですね。

おまけ 透過PNGを拡縮してJpegにすると謎の枠線(筋)が付く場合の対処方法

XnViewで透明背景のPNGを拡縮してJpeg出力すると灰色の枠線(筋)が付く現象の解決方法 - 画力がないなら立体を作ればいい


今回の創作活動は約15分(累積 約684時間)
(154回目のブログ更新)
追記の創作活動は約30分(累積 約1015時間)