
番号付きの画像シリーズを作成するにはどうすればいいですか? 何千もの画像に番号を付ける(番号を書き込む)必要があります。
これを行う簡単な方法はありますか:
input.png を変換 - フォント arial - 塗りつぶし 黒 - ポイントサイズ 10 - 注釈 +20+20「1」出力_0001.png
input.png を変換 - フォント arial - 塗りつぶし 黒 - ポイントサイズ 10 - 注釈 +20+20「2」出力_0002.png
....
input.png を変換 - フォント arial - 塗りつぶし 黒 - ポイントサイズ 10 - 注釈 +20+20「1250」出力_1250.png
答え1
ループを使用しますfor
:
for i in `seq 1 1250`
do convert input.png -font arial -fill black -pointsize 10 -annotate +20+20 $i output_$(printf %04d $i).png
done
編集: 質問では Windows を使用していることを明記していませんでした。cmd.exe も PowerShell もわからないため、2 つの代替ソリューションを提案します。
Perlディストリビューション(例:http://strawberryperl.comまたはhttp://dwimperl.com)、試してみてください(未テスト):
#!/usr/bin/perl
use v5.14;
for (1 .. 1250) {
my $x = sprintf "%04d", $_;
system qw/convert input.png -font arial -fill black -pointsize 10 -annotate +20+20/, $_, "output_$x.png";
}
C コンパイラをお持ちの場合は、試してください (これも未テスト)。
#include<stdio.h>
#include<stdlib.h>
int main(void){
char cmd[1000];
int i;
for(i = 1 ; i <= 1250 ; i++){
sprintf(cmd, "convert input.png -font arial -fill black -pointsize 10 -annotate +20+20 %d output_%04d.png", i, i);
system(cmd);
}
return 0;
}
答え2
どこにも簡単な答えが見つからなかったので、必要なことを実行するバッチ スクリプトを作成しました。
@echo off
setlocal enableextensions enabledelayedexpansion
set /a count = 0
For %%A in (*.png) DO (
set /a count += 1
echo Processing Image !count!
magick convert -font arial-black -pointsize 250 -fill white -strokewidth 5 -stroke black -gravity southeast -annotate +100+0 "!count!" "%%A" "!count!_%%A"
)
endlocal
pause
バッチ処理を初めて使用する場合は、次の点に注意する必要があります。
For %%A in (*.png) DO (
これは、このフォルダー内の PNG ファイルのみを処理することを意味します。使用しているファイル拡張子に変更してください。
メインコマンドを見てみましょう:
magick convert -font arial-black -pointsize 250 -fill white -strokewidth 5 -stroke black -gravity southeast -annotate +100+0 "!count!" "%%A" "!count!_%%A"
変更できる項目はいくつかあり、フォント、数字の色 (塗りつぶし)、アウトラインの有無 (ストロークとストローク幅。必要ない場合は削除します) などです。重力によって数字が印刷される場所が決まります。この場合、南東は右下隅になることを意味します。
また、数字の大きさを制御する -pointsize も必ず変更する必要があります。番号を付ける必要のある画像はすべて 1920x1080 だったので、値として 250 を選択しましたが、対象画像の大きさに応じてフォント サイズを変更する必要があります。
この...
set /a count = 0
画像に印刷される最初の数字が 1 になることを意味します。必要な開始番号に応じて 0、それより大きい、または小さい数字にしたい場合は、これを -1 に設定します。
将来これを見つけた人の役に立つことを願っています!
答え3
の代わりに:output_1250.png
あなたが望むこと:output_%04d.png
%d
は、imagemagick に増分番号 (例 ) を挿入するように指示し01.png
02.png
、%04d
数値を 4 桁にしてゼロを埋め込むことを意味します (例) output_0001.png
。output_0002.png
output_1250.png
この方法では、1 つの変換コマンドのみを使用します。