ImageMagickで画像クイズを作る
やったこと
複数の画像を並べて1枚の画像クイズを作った.
→
画像:いらすとや
実装
bash + ImageMagick
convert -crop でトリミングする
crop.sh
# crop {source directory} {target directory}
WIDTH=126
HEIGHT=102
for FILEPATH in `ls $1/*`
do
convert ${FILEPATH} -gravity center -crop ${WIDTH}x${HEIGHT}+0+0 $2/`basename ${FILEPATH}`
done
convert label でナンバリングする
rannotate.sh
# rannotate {source directory} {target directory}
BGCOLOR='#61B859'
COUNTER=1
for FILEPATH in `ls $1/* | sort -R`
do
convert ${FILEPATH} -background ${BGCOLOR} -pointsize 24 label:${COUNTER} +swap -gravity Center -append $2/`printf %02d $COUNTER`.${FILEPATH##*.}
COUNTER=$(( COUNTER + 1 ))
done
montage -tile で並べる
tile.sh
# tile {source directory} {target file}
COLNUM=6
magick `ls $1/*` pnm:- | montage - -tile ${COLNUM}x -geometry +0+0 $2
1連の処理をまとめる
tile+.sh
# tile+ {source directory} {target file}
DIR=`dirname $0`
mkdir /tmp/cropped
rm /tmp/cropped/*
${DIR}/crop.sh $1 /tmp/cropped
mkdir /tmp/annotated
rm /tmp/annotated/*
${DIR}/rannotate.sh /tmp/cropped /tmp/annotated
${DIR}/tile.sh /tmp/annotated ${2:-tiled.png}
crop.sh, rannotate.sh, tile.sh, tile+.sh を同ディレクトリに配置する.
学び
-
basename
とdirname
.
-
montage
はデフォルトでラベルをつけるためmagick pnm:-
をかませて消去する.
- デフォルト変数
${VAR:-default}
.
basename
とdirname
.montage
はデフォルトでラベルをつけるためmagick pnm:-
をかませて消去する.${VAR:-default}
.Author And Source
この問題について(ImageMagickで画像クイズを作る), 我々は、より多くの情報をここで見つけました https://qiita.com/templateaholic10/items/e9469eee4c6a08c3b15c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .