Mercurial > libervia-backend
annotate frontends/wix/images/split_card.sh @ 99:63c9067a1499
Tarot game: invalid cards management
- tarot plugin: card validity check, new signal tarotGameInvalidCards
- wix: when an invalid cards signal is received, the cards are back in the hand, and the state change so the player as to play again.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 18 Jun 2010 15:19:32 +0800 |
parents | 7471ffcda33b |
children | 50f1591c8fc6 |
rev | line source |
---|---|
81 | 1 #!/bin/sh |
2 #This script split an image with cards, used to split cards from the Tarot deck found on Wikimedia Commons | |
3 #This script work with any resolution on the initial image | |
4 | |
5 dest_dir=cards | |
6 | |
7 get_face_name() | |
8 { | |
9 if [ $1 -le 10 ] | |
10 then | |
11 echo $1 | |
12 else | |
13 case $1 in | |
14 11) echo valet;; | |
15 12) echo cavalier;; | |
16 13) echo dame;; | |
17 14) echo roi;; | |
18 esac | |
19 fi | |
20 } | |
21 | |
22 get_card_name() | |
23 { | |
24 if [ $1 -le 21 ] | |
25 then | |
26 echo "atout_$1" | |
27 elif [ $1 -eq 22 ]; then | |
28 echo "atout_excuse" | |
29 elif [ $1 -le 36 ]; then | |
30 echo "pique_$(get_face_name $(($1-22)))" | |
31 elif [ $1 -le 50 ]; then | |
32 echo "coeur_$(get_face_name $(($1-36)))" | |
33 elif [ $1 -le 64 ]; then | |
34 echo "carreau_$(get_face_name $(($1-50)))" | |
35 else | |
36 echo "trefle_$(get_face_name $(($1-64)))" | |
37 fi | |
38 } | |
39 | |
82
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
40 #We check the version of convert |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
41 CONVERT_VER=`convert --version | grep Version | grep -o "[0-9]\.[0-9]\.[0-9]"` |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
42 CONVERT_MAJOR=`echo $CONVERT_VER | cut -d . -f 1` |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
43 CONVERT_MINOR=`echo $CONVERT_VER | cut -d . -f 2` |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
44 CONVERT_REV=`echo $CONVERT_VER | cut -d . -f 3` |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
45 |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
46 if [ $CONVERT_MAJOR -lt 6 -o $CONVERT_MAJOR -eq 6 -a $CONVERT_MINOR -lt 6 ] |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
47 then |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
48 echo "ImageMagick convert must be at least version 6.6.0 (current: $CONVERT_VER)" |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
49 exit 1 |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
50 fi |
21f83796a293
misc: added convert version check in split_card script
Goffi <goffi@goffi.org>
parents:
81
diff
changeset
|
51 |
81 | 52 current=`pwd` |
53 #TODO: check directory presence | |
54 #echo "making directory" | |
55 if test -e $dest_dir | |
56 then | |
57 if test -n "`ls -A $dest_dir`" | |
58 then | |
59 echo "$dest_dir directory exists and is not empty !" | |
60 exit 1 | |
61 fi | |
62 else | |
63 mkdir $dest_dir | |
64 fi | |
65 echo "splitting $dest_dir" | |
84
7471ffcda33b
misc: split_cards: fix bad replacement
Goffi <goffi@goffi.org>
parents:
82
diff
changeset
|
66 convert Tarotcards.jpg -bordercolor black -crop 14x6@ -fuzz 50% -trim $dest_dir/card_%02d.png 2>/dev/null |
81 | 67 cd $dest_dir |
68 | |
69 #POST PROCESSING | |
70 | |
71 nb_files=`ls -A1 card*png | wc -l` | |
72 num=0 | |
73 idx=0 | |
74 max_w=0 | |
75 max_h=0 | |
76 deleted="" | |
77 for file in card*png | |
78 do | |
79 num=$((num+1)) | |
80 size=`stat -c%s $file` | |
81 width=`identify -format "%w" $file` | |
82 height=`identify -format "%h" $file` | |
83 | |
84 if [ $width -gt $max_w ] | |
85 then | |
86 max_w=$width | |
87 fi | |
88 | |
89 if [ $height -gt $max_h ] | |
90 then | |
91 max_h=$height | |
92 fi | |
93 | |
94 echo -n "post processing file [$file] ($num/$nb_files) | " | |
95 echo -n `echo "scale=2;$num/$nb_files*100" | bc`% | |
96 echo -n "\r" | |
97 | |
98 if test $size -lt 1000 | |
99 then #we delete empty files (areas without card on the initial picture) | |
100 deleted="$deleted$file\n" | |
101 rm -f $file | |
102 else | |
103 idx=$((idx+1)) | |
104 #We use transparency for the round corners | |
105 mogrify -fuzz 80% -fill none -draw "matte 0,0 floodfill" \ | |
106 -draw "matte $((width-1)),0 floodfill"\ | |
107 -draw "matte 0,$((height-1)) floodfill"\ | |
108 -draw "matte $((width-1)),$((height-1)) floodfill"\ | |
109 $file | |
110 #Time to rename the cards | |
111 mv "$file" "$(get_card_name $idx).png" | |
112 | |
113 fi | |
114 done | |
115 echo "\nEmpty files deleted:\n$deleted" | |
116 echo "\nBiggest size: ${max_w}X${max_h}" | |
117 cd "$current" | |
118 echo "DONE :)" |