Tag Archives: imagemagick

notes

ImageMagickで決まった形に切り抜くやつ

前回のただ寸法通りに周りを切り落とすだけのから少しパワーアップしました。
FGOのサポート編成画面の配置が変わったので、せっかくだしついでにちょっと見た目に気を使おうと思いまして。
ささっと塗りつぶして作った1280*720用のの範囲指定画像で、黒い範囲以外を透明化して余白を切り落とします。

rem このバッチが存在するフォルダをカレントに
pushd %0\..
cls

set mogrify="(インストールした場所)\mogrify.exe"
set convert="(インストールした場所)\convert.exe"

rem 透過処理
for /F "usebackq" %%i in (`dir /s /b *.png`) do %convert% %%i position.png -compose CopyOpacity -composite %%~ni-done.png

rem サイズ変更
for /F "usebackq" %%i in (`dir /s /b *-done.png`) do %mogrify%  -resize 50%% %%i

rem トリミング、左右9pxずつ、上104px、下89px
for /F "usebackq" %%i in (`dir /s /b *-done.png`) do %mogrify%  -chop 11x104 %%i
for /F "usebackq" %%i in (`dir /s /b *-done.png`) do %mogrify% -gravity SouthEast -chop 11x89 %%i

rem 範囲指定画像の分の余計なファイルを削除する
for /F "usebackq" %%i in (`dir /s /b position-done.png`) do del %%i

pause
exit
notes

ImageMagickでいつも決まった寸法で切り抜くやつ

  • Imagemagickをインストールした場所を書き換えること
  • 寸法は一度ペイントとかで測ってください

私はこれを何に使っているかというと、Fate/Grand Orderのサポート欄をスクショした時、周りの枠が要らないのでサーヴァントとかの部分だけにしたくて書きました。
あと無駄に大きかったのでサイズ変更のところで半分に縮小しています。

rem このバッチが存在するフォルダをカレントに
pushd %0\..
cls

set mogrify="(インストールした場所)\mogrify.exe"

rem サイズ変更
for /F "usebackq" %%i in (`dir /s /b *.png`) do %mogrify%  -resize 50%% %%i

rem トリミング、左右9pxずつ、上70px、下100px
for /F "usebackq" %%i in (`dir /s /b *.png`) do %mogrify%  -chop 9x70 %%i
for /F "usebackq" %%i in (`dir /s /b *.png`) do %mogrify% -gravity SouthEast -chop 9x100 %%i

pause
exit
notes

ImageMagickで一定範囲を別画像で塗りつぶし

  • Imagemagickをインストールした場所だけ書き換えること
  • 塗りつぶしたい(一時的に透明にしたい)部分を黒で塗りつぶしたファイルをalpha.pngとする
  • 下に敷いて透明部分から覗かせたいファイルを00.pngとする
rem このバッチが存在するフォルダをカレントに
pushd %0\..
cls

set composite="(インストールした場所)\composite.exe"

for /F "usebackq" %%i in (`dir /s /b *.png`) do %composite%  -compose CopyOpacity alpha.png %%i  %%~ni-alpha.png

rem いらない *-alpha.pngを削除する
for /F "usebackq" %%i in (`dir /s /b 00-alpha.png`) do del %%i
for /F "usebackq" %%i in (`dir /s /b alpha-alpha.png`) do del %%i

rem 00.pngの上に-alphaを重ねていく
for /F "usebackq" %%i in (`dir /s /b *-alpha.png`) do %composite% -compose over %%i 00.png %%~ni-comp.png

rem 仮出力ファイルを削除する
for /F "usebackq" %%i in (`dir /s /b *-alpha.png`) do del %%i

pause
exit

既に塗りつぶしたい部分を切り抜いた場合はこっち

rem このバッチが存在するフォルダをカレントに
pushd %0\..
cls

set composite="(インストールした場所)\composite.exe"

rem 00.pngの上に-alphaを重ねていく
for /F "usebackq" %%i in (`dir /s /b *.png`) do %composite% -compose over %%i 00.png %%~ni-comp.png

rem いらない 00-comp.pngを削除する
for /F "usebackq" %%i in (`dir /s /b 00-comp.png`) do del %%i

pause
exit
notes

ImageMagickで背景と文字を切り離すやつ

  • Imagemagickをインストールした場所だけ書き換えること
  • 文字なしの画像を00.pngにする
  • 処理したい画像を入れたフォルダに以下の内容を書いたbatファイルを置いて実行するとマッチ棒ができる
rem このバッチが存在するフォルダをカレントに
pushd %0\..
cls

set composite="(インストールした場所)\composite.exe"
set mogrify="(インストールした場所)\mogrify.exe"
set convert="(インストールした場所)\convert.exe"

rem diffをとる
for /F "usebackq" %%i in (`dir /s /b *.png`) do %composite% -compose difference 00.png %%i  %%~ni-diff.png

rem 00-diff.pngはまっさらなので削除
for /F "usebackq" %%i in (`dir /s /b 00-diff.png`) do del %%i

rem 白黒反転、白を透過する
for /F "usebackq" %%i in (`dir /s /b *-diff.png`) do %mogrify% -negate %%i
for /F "usebackq" %%i in (`dir /s /b *-diff.png`) do %mogrify% -transparent white %%i

rem pngを1枚につなげる
%convert% -background black -append *-diff.png full.png

pause

rem 仮出力ファイルを削除する
for /F "usebackq" %%i in (`dir /s /b *-diff.png`) do del %%i

pause
exit