Précédent   Forum des professionnels en informatique > Autres langages > Autres langages > Ruby
Ruby Le forum sur la programmation Ruby. Voir aussi la FAQ Ruby et les cours Ruby.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/10/2011, 15h25   #1
Invité de passage
 
Homme Mathieu
Ruby on Rails
Inscription : juillet 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Mathieu
Localisation : Canada

Informations professionnelles :
Activité : Ruby on Rails

Informations forums :
Inscription : juillet 2010
Messages : 4
Points : 0
Points : 0
Envoyer un message via Skype™ à Yoshiji
Par défaut [ImageMagick] Optimisation d'un script.sh de création de Perspective

Bonjour la communauté Développez.com !

J'ai réalisé un script qui me permet de générer une perspective d'image. J'utilise le superbe script de Fred, le 3DRotate.
Seulement, le temps d’exécution est assez élevé (légèrement supérieur à 10 secondes)... Je cherche donc un moyen d'optimiser le temps d'execution de mon script, pour éviter une attente si longue.

Voici le contenu de mon script.sh :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
if [ -z "$8" ]
then
    ###########  $0 #### $1 ############ $2 ########## $3 ### $4 ### $5 ###### $6 ###### $7 ###### $8 #####
    echo "usage: $0 image_source.jpg image_finale.jpg x_max y_max y_max-10% y_max-20 y_max*10% script_path"
    exit 1
fi
 
#Création du Raising border sur le Front
convert $1 -fill gray50 -colorize 100% -raise 10 -normalize -blur 0x8 "$1"_filled.jpg
convert $1 "$1"_filled.jpg -compose hardlight -composite "$1"_raised.jpg
 
#Création du Spine et raising border
convert -size 80x$4 gradient:black-gray30 "$1"_spine.jpg
convert "$1"_spine.jpg +raise 5 "$1"_spine.jpg
 
#Assemblement du Spine + Front et effet 3D Perspective
#convert -virtual-pixel transparent \( "$1"_raised.jpg -matte +distort Perspective  "0,0,0,0 0,$4,0,$4 $3,0,$3,$7 $3,$4,$3,$5" \) \( "$1"_spine_raised.jpg -matte +distort Perspective "0,0,-80,30 80,0,0,0 0,$4,-80,$6 80,$4,0,$4"  \) -background transparent -layers merge -sharpen 1 +repage -bordercolor transparent -border 80x30 "$2".png
"$8"/3Drotate pan=20 bgcolor=transparent auto=out "$1"_raised.jpg "$2".png
"$8"/3Drotate pan=-20 bgcolor=transparent auto=out "$1"_spine.jpg "$2"_spine.png
convert "$2".png -background white -bordercolor none -border 80x0 "$2".png
convert "$2".png -resize "$3"x"$4"\! "$2".png
convert "$2"_spine.png -resize "$3"x"$4" "$2"_spine.png
composite -geometry +3+3 "$2"_spine.png "$2".png "$2".png
convert "$2".png -background transparent -bordercolor none -border 80x30 "$2".png
#Ajout de l'ombrage autour du Canvas final
convert "$2".png  \( +clone -background gray -shadow 70x5+5+5 \) +swap -background white -layers merge +repage $2
 
#resize à la taille originale
convert $2 -background white -resize "$3"x"$4"\! $2
 
#Remove des images intermédiaires
rm "$1"_filled.jpg
rm "$1"_raised.jpg
rm "$1"_spine.jpg
rm "$2"_spine.png
rm "$2".png
J'imagine que je peux regrouper plusieurs commandes en une seule, j'ai essayé mais je n'ai malheureusement pas réussi ...

Merci à tous ceux qui pourront m'aider !
Yoshiji est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h19.


 
 
 
 
Partenaires

Hébergement Web