私は画像にテキストコメントを追加するために変換コマンドを使用しています。
convert -pointsize 20 -fill green -draw 'text 270,460 "[TEXT TO ANNOTATE]" ' [INPUT IMAGE NAME].jpg [OUTPUT IMAGE NAME].jpg
100個の画像と100個の固有の単語を含む.txtファイルがあります。各単語は1行に1つずつあります。 100個の画像のそれぞれに.txtファイルのテキスト行を追加するにはどうすればよいですか?明らかに、私は彼らがユニークであることを望みます。同じテキストで注釈付きの画像が複数あることはできません。私はシェルスクリプトに初めて触れ、どこから始めるべきかさえ知りません。
ベストアンサー1
要求を正しく理解すると、次のようになります(POSIXsh
構文)。
for file in ./*.[jJ][pP][gG]; do
IFS= read -r text <&3 || break
convert -pointsize 20 \
-fill green \
-draw "text 270,460 \"$text\"" \
"$file" "${file%.*}-annotated.${file##*.}"
done 3< /path/to/list.txt
(行に二重引用符がないと仮定list.txt
)。
.jpg
現在のディレクトリ内のすべての(大文字と小文字の区別)ファイルをアルファベット順に処理し、各ファイルのテキストを1行読み、その行のテキストとしてlist.txt
jpgにコメントを追加しますoriginal-annotated.jpg
。