ImageMagickでファイル名を保ったまま一発変換
コスメ記事ではないのですが、他に書く場所がないのでメモ代わりに。
やりたかったこと
ファイル名を保ったまま一発で画像変換(背景を白塗りつぶし、階調反転、アルファチャンネル削除)
なんでそんなこと必要になったか
昔使っていたPaintgraphicというソフトはスクリーントーン(パターンファイル)の塗りつぶしが黒い部分が塗られず、透明の部分が描画色で塗られるというクソ一風変わった仕様だった。そのため、通常配布されている白地に黒の点々のパターンファイルを階調反転して白い部分を透明化して使っていた。
win10への移行と同時にgimpに移行してからも上記のパターンファイルはそのままで使っていて、わざわざキャンバスを白く塗ってからパターンで塗りつぶしていたんだけど、この白く塗りつぶす一手間いらないよな、と気付いたのが今日。
試したこと
トーンの配布元サイトさんから再度DLしてくる
- これができれば一番良かったのだが「ねこまたぎくらぶ」さん消滅してるみたいで無理だった
-
- BIMPというプラグインを入れてごちゃごちゃやってたのだけど「背景色を塗る」または「透明部分を選択する」ができなくて詰んだ
- 階調反転、ファイル名そのまま保存はできた
ImageMagickで変換する
convert C:\input\*.* -background white -alpha remove -negate c:\output\test.png
これでできた
for %i in (C:\input\*.png) do (convert %i -background white -alpha remove -negate c:\output\%~ni.png)
- %i が in で指定した画像ファイルを入れる変数で
- %~ni で %i(画像ファイル)の名前を表してるっぽい
ただし、%i に半角スペースが含まれると convert コマンドでエラーになるので、事前にスペースを別の文字(アンダーバーとか)に置換しておく必要がある。
Get-ChildItem C:\input | Rename-Item -NewName { $_.Name -replace ' ','_' }