動作環境
CentOS release 6.9 (Final)
GNU Bash-4.1
ImageMagick Version: ImageMagick 6.7.2-7 2017-03-22 Q16
処理概要
- 指定のサイズの白画像を用意する
- 指定の文字列(複数)を指定の形式で画像に書込む
code v0.1
prepareStringImage_180808_exec
# !/usr/bin/env bash
# v0.1 Aug. 08, 2018
# - overlay strings to a white canvas
set -eu # just in case
OUTFILE="string_180808.png"
WRKFILE="wrk_180808.png"
###########
# CONFIGURATIONS
YPOSS=("30" "60" "90") # start y positions
STSTRS=("0" "100" "200") # start strings (ST)
EDSTRS=("100" "200" "300") # end strings (ED)
UNIT="cm"
FORMSTR="%s to %s%s" #format of the string using (ST, ED, UNIT)
CANVAS_SIZE="300x100"
FONT_SIZE="20"
###########
# 1. prepare canvas
convert -size $CANVAS_SIZE xc:white $WRKFILE
# 2. overlay strings
((maxloop_st0 = ${#YPOSS[*]} - 1))
for idx in $(seq 0 $maxloop_st0)
do
atxt="$(printf "$FORMSTR" ${STSTRS[idx]} ${EDSTRS[idx]} $UNIT)"
echo $atxt
prm="-pointsize $FONT_SIZE -annotate +10+${YPOSS[idx]}"
convert $prm "$atxt" $WRKFILE $OUTFILE
mv $OUTFILE $WRKFILE # for overlay
done
# 3. rename as output
mv $WRKFILE $OUTFILE
# message
echo "[$OUTFILE] is created"
実行
run
$ bash prepareStringImage_180808_exec
0 to 100cm
100 to 200cm
200 to 300cm
[string_180808.png] is created
下記はeog string_180808.png
した結果。
関連 > 実装時の参考
- bash > printf > プレフィックスを追加する方法 > filename3=$(printf "%s_%02d.nc" $prefix $idx) > $prefixに%が含まれる可能性も考慮
- ImageMagick | Python 2 (v2.6.6) > ファイル名から日時を取得し、画像に日時ラベル追加 > label_image_171005.py v0.1 > subprocess.callにて項目の一つに空白がある場合は、それを避けて.split()する
-
ImageMagick 画像中に文字を入れる by @hsagae 様
- 情報感謝です
関連 > 用途
例として、上記のスクリプトで用意された文字列画像を、リンク先の「画像切出し、合成」処理で合成する。