Mercurial > libervia-backend
view frontends/wix/images/split_card.sh @ 84:7471ffcda33b
misc: split_cards: fix bad replacement
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 06 May 2010 20:47:48 +0930 |
parents | 21f83796a293 |
children | 50f1591c8fc6 |
line wrap: on
line source
#!/bin/sh #This script split an image with cards, used to split cards from the Tarot deck found on Wikimedia Commons #This script work with any resolution on the initial image dest_dir=cards get_face_name() { if [ $1 -le 10 ] then echo $1 else case $1 in 11) echo valet;; 12) echo cavalier;; 13) echo dame;; 14) echo roi;; esac fi } get_card_name() { if [ $1 -le 21 ] then echo "atout_$1" elif [ $1 -eq 22 ]; then echo "atout_excuse" elif [ $1 -le 36 ]; then echo "pique_$(get_face_name $(($1-22)))" elif [ $1 -le 50 ]; then echo "coeur_$(get_face_name $(($1-36)))" elif [ $1 -le 64 ]; then echo "carreau_$(get_face_name $(($1-50)))" else echo "trefle_$(get_face_name $(($1-64)))" fi } #We check the version of convert CONVERT_VER=`convert --version | grep Version | grep -o "[0-9]\.[0-9]\.[0-9]"` CONVERT_MAJOR=`echo $CONVERT_VER | cut -d . -f 1` CONVERT_MINOR=`echo $CONVERT_VER | cut -d . -f 2` CONVERT_REV=`echo $CONVERT_VER | cut -d . -f 3` if [ $CONVERT_MAJOR -lt 6 -o $CONVERT_MAJOR -eq 6 -a $CONVERT_MINOR -lt 6 ] then echo "ImageMagick convert must be at least version 6.6.0 (current: $CONVERT_VER)" exit 1 fi current=`pwd` #TODO: check directory presence #echo "making directory" if test -e $dest_dir then if test -n "`ls -A $dest_dir`" then echo "$dest_dir directory exists and is not empty !" exit 1 fi else mkdir $dest_dir fi echo "splitting $dest_dir" convert Tarotcards.jpg -bordercolor black -crop 14x6@ -fuzz 50% -trim $dest_dir/card_%02d.png 2>/dev/null cd $dest_dir #POST PROCESSING nb_files=`ls -A1 card*png | wc -l` num=0 idx=0 max_w=0 max_h=0 deleted="" for file in card*png do num=$((num+1)) size=`stat -c%s $file` width=`identify -format "%w" $file` height=`identify -format "%h" $file` if [ $width -gt $max_w ] then max_w=$width fi if [ $height -gt $max_h ] then max_h=$height fi echo -n "post processing file [$file] ($num/$nb_files) | " echo -n `echo "scale=2;$num/$nb_files*100" | bc`% echo -n "\r" if test $size -lt 1000 then #we delete empty files (areas without card on the initial picture) deleted="$deleted$file\n" rm -f $file else idx=$((idx+1)) #We use transparency for the round corners mogrify -fuzz 80% -fill none -draw "matte 0,0 floodfill" \ -draw "matte $((width-1)),0 floodfill"\ -draw "matte 0,$((height-1)) floodfill"\ -draw "matte $((width-1)),$((height-1)) floodfill"\ $file #Time to rename the cards mv "$file" "$(get_card_name $idx).png" fi done echo "\nEmpty files deleted:\n$deleted" echo "\nBiggest size: ${max_w}X${max_h}" cd "$current" echo "DONE :)"