Mercurial > libervia-backend
diff frontends/wix/images/split_card.sh @ 81:104a815bb23f
Tarot game: first draft
- wix: first draft of cards window
- shell script to split cards from Tarot game found on wikimedia commons
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 18 Apr 2010 15:47:10 +1000 |
parents | |
children | 21f83796a293 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/frontends/wix/images/split_card.sh Sun Apr 18 15:47:10 2010 +1000 @@ -0,0 +1,106 @@ +#!/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 +} + +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 Tarot$dest_dir.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 :)"