Mercurial > libervia-backend
view frontends/src/wix/images/split_card.sh @ 297:c5554e2939dd
plugin XEP 0277: author for in request + author, updated management for out request
- a workaround is now used to parse "nick" tag (Jappix behaviour)
- author and updated can now be used in data when sendind microblog. Is no author is given, user jid is used, if no updated is given, current timestamp is used
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 18 Feb 2011 22:32:02 +0100 |
parents | 86d249b6d9b7 |
children |
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 #Copyright (C) 2009, 2010 Jérôme Poisson (goffi@goffi.org) #This program is free software: you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by #the Free Software Foundation, either version 3 of the License, or #(at your option) any later version. #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. #You should have received a copy of the GNU General Public License #along with this program. If not, see <http://www.gnu.org/licenses/>. 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 SYNTAXE="Split card image\nsyntaxe: $0 image_to_split.ext" if [ $# -ne 1 ] then echo $SYNTAXE exit 1 fi echo `file -b --mime-type $1` | grep image 2>&1 > /dev/null if [ $? -ne 0 ] then echo "target file is not an image" 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 cards" 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 :)"