LoginSignup
12

More than 5 years have passed since last update.

ImageMagickなのに左にも上にもappendできる!

Last updated at Posted at 2014-05-12

@chocomelon: なんでImageMagickって左と上にappendできないの?死ぬの?

@t_cyrill: ファイルの引数逆にすればええやん

@chocomelon: めんどいやん。わかりづらいやん。

ってことで左にも上にもappendできるバッチ作った

こんなふうにしたいときに有効だよ!

flan.png
07_00_flandre.png

koakuma.png
08_00_koakuma.png

sanae.png
09_00_sanae.png

例1: フランちゃん起点にして左に数珠つなぎ

./append.sh -left flan.png koakuma.png sanae.png append1.png

append1.png
append.png

例2: フランちゃんを起点に上に数珠つなぎ

./append.sh -top flan.png koakuma.png sanae.png append2.png

append2.png
append.png

もちろん右にも下にもつなげるよ!(右と下はデフォルトのappendでできます)

使い方

appended.pngに出力したいを保存したい場合

./apend.sh -(left|right|top|bottom) file1.png file2.png ..... appendedfile.png

スクリプト本体

append.sh

#!/bin/bash                                                                                                                                           

if [ $# -lt 3 ]; then
    echo "Usage: append DIRECTION file1 file2 ... dest"
    echo "i.e.: append -left 01.png 02.png dest.png"
    echo "DIRECTION = [-left|-right|-top|-bottom]"
    exit
fi

DIRECTION=$1
shift;
ARGS=("$@")
DEST=${ARGS[((${#ARGS[@]}-1))]}

FILES="${ARGS[@]:0:((${#ARGS[@]}-1))}"

case "$DIRECTION" in
    "-left"|"-right") OPTIONS='+append';;
    "-top"|"-bottom") OPTIONS='-append';;
esac

case "$DIRECTION" in
    "-left"|"-top") FILES=`echo "$FILES" | awk '{for(i=NF;i>0;i--) printf("%s ",$i);}' | xargs`;;
esac

convert $OPTIONS $FILES $DEST

gistも貼っとくよ!

ちなみに…このスクリプトは @chocomelon があーだこーだ言ってたら隣に居た @t_cyrill がいい感じにして(作って)くれました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12