Révision 0bd646e4
Ajouté par Victor PONGNIAN il y a plus de 10 ans
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
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.