Projet

Général

Profil

Révision 0bd646e4

Ajouté par Victor PONGNIAN il y a plus de 10 ans

remise en forme du travail de Victor Pongnian suit à son stage
Il reste pas mal de cosmétique à revoir mais le système devrait déjà être utilisable dans l'état.

Voir les différences:

to_tiles/gen_tiles.sh
1 1
#!/bin/bash
2 2

  
3
trap clean_tmp EXIT
4
# fin d'eviter tout problème de locales en reste en C de base.
5

  
6
set -e
7
export LANG=C
8

  
9
# pour éliminer systématiquement les fichier temporaires créés ic
10
function clean_tmp() {
11
    if [ -n "$wfname" ]; then
12
	rm $wfname
13
    fi
14
    if [ -n "$tmp_file" ]; then
15
	rm $tmp_file
16
    fi
17
}
18

  
3 19
test_mode=false
4 20
memory_limit=256
5 21
crop_x=256
......
42 58
    prefix=$(basename $1|sed 's/\..*$//')
43 59
fi
44 60

  
45
wfname=$prefix.pnm
61
wfname=$(mktemp ${prefix}_XXXX.pnm)
46 62
if ! $test_mode; then
47 63
    anytopnm $fname > $wfname
48 64
else
......
51 67

  
52 68
echo "préfixe : "$prefix
53 69

  
70
tmp_file=$(mktemp)
71

  
54 72
for ((z=$min_scale; z <= $max_scale; z++))
55 73
do
56 74
    fprefix=${prefix}_00$z
57
    LANG=C  printf -v ratio %1.4lf $(echo "1 / (2^$z)" | bc -l)
75
    printf -v ratio %1.4lf $(echo "1 / (2^$z)" | bc -l)
58 76
    echo génération du ratio $ratio
59
    zwfname=tmp.pnm
77
    zwfname=$tmp_file
60 78

  
61 79
    if $test_mode; then
62 80
	if [ $ratio = 1.0000 ]; then
......
73 91
	if [ $ratio = 1.0000 ]; then
74 92
	    zwfname=$wfname
75 93
	else
76
	    pnmscale $ratio $wfname > $zwfname
94
	    if ! pnmscale $ratio $wfname > $zwfname; then
95
		echo "operation 'pnmscale $ratio $wfname > $zwfname' en erreur"
96
		exit 1
97
	    fi
77 98
	fi
78
	convert $zwfname \
99
	if convert $zwfname \
79 100
	    -limit memory $memory_limit \
80 101
            -crop ${crop_x}x${crop_x} \
81 102
            -set filename:tile "%[fx:page.x/${crop_x}]_%[fx:page.y/${crop_y}]" \
82
            +repage +adjoin "${fprefix}_%[filename:tile].jpg"
103
            +repage +adjoin "${fprefix}_%[filename:tile].jpg"; then
104
	    echo "Nombre des fichiers produits :" $(ls -la ${fprefix}_*| wc -l)
105
	else
106
	    echo "operation 'convert' en erreur"
107
	    exit 2
108
	fi
83 109
    fi
84 110
done
85 111

  
86
echo  ${fprefix}_*
87

  
88 112
if ! $test_mode; then
89 113
## les lignes ci dessous sont destinnées à mettre des 0 en debut des numéros de ligne et de colonnes
90 114
## Il y a certainement plus simple mais là c'est du rapide et efficace.
......
92 116
    rename 's/_(\d)_(\d+\.jpg)$/_00$1_$2/' ${prefix}_*
93 117
    rename 's/_(\d+)_(\d\d)(\.jpg)$/_$1_0$2$3/' ${prefix}_*
94 118
    rename 's/_(\d+)_(\d)(\.jpg)$/_$1_00$2$3/' ${prefix}_*
95
    rm $zwfname $wfname
96
else
97
    echo rm $zwfname $wfname
98 119
fi

Formats disponibles : Unified diff