#1 Le 15/03/2015, à 16:33
- enebre
ajouter une fonction au script image "résolu"
Bonjour,
J'ai deux scripts et j'aimerais combiner les éléments pour faire un troisième script, malgré mes efforts je n'y suis pas arrivé, je demande un petit peu d'aide pour cette rédaction.
le premier script converti une image en taille, le second apporte de l'ombrage, j'aimerais avoir un redimensionnement avec ombrage.
#!/bin/bash
DEST="./resized-400"
mkdir -p $DEST
for file
do
if [ ! -e $file ]
then
continue
fi
to_name="$DEST/"$(echo $file | cut -f1 -d.)".jpg"
convert -geometry $1x$1 -quality 95 "${file}" "${to_name}"
done
La fonction supplémentaire souhaitée:
convert -mattecolor grey -frame 2x2+1+1 \( +clone -background navy -shadow 70x7+15+25 \) +swap -background none -mosaic "${file}" "${to_name}"
je l'ai placée à différents endroits du script, mais j'y arrive pas
merci pour votre attention.
Dernière modification par enebre (Le 16/03/2015, à 14:04)
Hors ligne
#2 Le 15/03/2015, à 17:25
- pingouinux
Re : ajouter une fonction au script image "résolu"
Bonjour,
Tu peux essayer ceci (en passant par un fichier temporaire). Il est peut-être possible de faire les deux opérations avec un seul appel à convert, mais je ne connais pas assez bien cette commande.
#!/bin/bash
DEST="./resized-400"
mkdir -p $DEST
tempo=/tmp/mon_fichier_temporaire.jpg
for file
do
[ -e "$file" ] || continue
to_name="$DEST/${file/%.*/.jpg/}"
convert -geometry $1x$1 -quality 95 "${file}" "${tempo}"
convert -mattecolor grey -frame 2x2+1+1 \( +clone -background navy -shadow 70x7+15+25 \) +swap -background none -mosaic "${tempo}" "${to_name}"
done
Remarque : La commande for file va lire les fichiers dans les paramètres d'appel du script, mais tu utilises déjà $1 comme valeur pour -geometry.
Hors ligne
#3 Le 15/03/2015, à 17:40
- enebre
Re : ajouter une fonction au script image "résolu"
pingouinux bonjour,
Je viens d'essayer ta suggestion, malheureusement ça ne fonctionne pas.
Hors ligne
#4 Le 15/03/2015, à 17:50
- pingouinux
Re : ajouter une fonction au script image "résolu"
Comment fais-tu l'appel du script, et quel est le message d'erreur ? Dans le script en #2 (c'est le tien un peu modifié), je n'ai pas corrigé l'incompatibilité dans les arguments, car je ne sais pas ce que tu veux faire exactement.
Hors ligne
#5 Le 15/03/2015, à 17:53
- enebre
Re : ajouter une fonction au script image "résolu"
je l'utilise avec thunar action, j'ai également tout essayé pour lancer le script par le terminal, mais il doit alors y manquer la partie reprise par thunar, je bloque un peu.
L'autre script c'est une récupération des pochettes sur loungeradio et qui applique un ombrage, j'aimerais avoir l'option d'un redimensionnement d'image avec l'ombre à partir de mon dossier images, je fais un clic droit sur l'image et thunar action entre en jeu .
Dernière modification par enebre (Le 15/03/2015, à 17:56)
Hors ligne
#6 Le 15/03/2015, à 21:52
- enebre
Re : ajouter une fonction au script image "résolu"
pingouinux, dis moi, je me suis peut être égaré en cherchant à faire un seul script, le plus simple serait alors de faire un autre script qui ajouterait l'ombrage, c'est plus simple et plus polyvalent.
Dans ce cas comment écrire cette fonction, je cherche la dessus, mais il semble que ce qui fonctionne sur le script de loungeradio ne veut pas fonctionner de façon indépendante.
Ici, c'est pour travailler sur une photo de manière aléatoire au gré des besoins et via l'intégration à thunar-action donc une image sans un nom fixe comme sur ce script.
#!/bin/bash
#pulling info from loung-radio.com for conky by nlinedesignz(at)web(dot)de 2013
wget http://www.lounge-radio.com/code/pushed_files/now.html -O $HOME/.conky/conky-perso/loungeradio-linux/loungeradio.html >/dev/null 2>&1 &&
artist=$(awk '/id="artist"/{getline; print}' $HOME/.conky/conky-perso/loungeradio-linux/loungeradio.html | sed "s/<div>\|<\/div>//g")
album=$(awk '/id="album"/{getline; print}' $HOME/.conky/conky-perso/loungeradio-linux/loungeradio.html | sed "s/<div>\|<\/div>//g")
track=$(awk '/id="track"/{getline; print}' $HOME/.conky/conky-perso/loungeradio-linux/loungeradio.html | sed "s/<div>\|<\/div>//g")
wget "http://www.lounge-radio.com/code/pushed_files/$(awk '/id="covercontainer"/{print}' $HOME/.conky/conky-perso/loungeradio-linux/loungeradio.html | sed -r 's/.*src="(.*)" width=.*/\1/')" -O $HOME/.conky/conky-perso/loungeradio-linux/loungeradio.jpg >/dev/null 2>&1 &&
convert $HOME/.conky/conky-perso/loungeradio-linux/loungeradio.jpg -mattecolor grey -frame 2x2+1+1 \( +clone -background navy -shadow 70x7+15+25 \) +swap -background none -mosaic $HOME/.conky/conky-perso/loungeradio-linux/loungeradio_shadow.png
echo
echo 'Artist :' $artist
echo 'Album :' $album
echo 'Piste :' $track
Dernière modification par enebre (Le 15/03/2015, à 21:54)
Hors ligne
#7 Le 15/03/2015, à 22:06
- enebre
Re : ajouter une fonction au script image "résolu"
j'ai fait ceci, mais ne fonctionne pas, pourriez vous m'aider pour trouver l'erreur, s'il vous plait ?
#!/bin/bash
DEST="./ombrage"
mkdir -p $DEST
for file
do
if [ ! -e $file ]
then
continue
fi
to_name="$DEST/"$(echo $file | cut -f1 -d.)".jpg"
convert -mattecolor grey -frame 2x2+1+1 \( +clone -background navy -shadow 70x7+15+25 \) +swap -background none -mosaic "${file}" "${to_name}"
done
le résultat escompté:
Dernière modification par enebre (Le 15/03/2015, à 22:10)
Hors ligne
#8 Le 16/03/2015, à 01:21
- pge
Re : ajouter une fonction au script image "résolu"
bonsoir,
#!/bin/bash
DEST="ombrage" #nom dossier final
mkdir -p $DEST
for file in "$@" # $@ : liste des fichiers passés par l'action Thunar
do
if [ ! -e $file ]
then
continue
fi
dir=${file%/*}
base=${file##*/}
base2=${base%.*}
#ext=${file##*.}
# chemin du fichier temporaire .png
tmpo="$dir"/"$DEST"/"$base2".png
# redimension du fichier en 400 pix max. et conversion en .png
convert -geometry 400x400 -quality 95 "$file" "$tmpo"
# Ajout d'un cadre gris de 2px + création de l'ombrage + composition et recadrage
convert "$tmpo" -mattecolor grey -frame 2x2+1+1 \( +clone -background navy -shadow 70x7+15+25 \) +swap -composite +repage "$tmpo"
# Aplatir .png sur .jpg avec transparence remplacée par fond blanc + suppression du fichier .png
# 2 lignes suivantes à commenter pour récupérer photos en .png (avec transparence)
convert "$tmpo" -bordercolor white -border 0x0 -trim "$dir"/"$DEST"/"$base2".jpg
rm "$tmpo"
done
Il y avait qq soucis avec la syntaxe de convert (position du fichier in) et la définition du chemin de destination.
Pour obtenir le fondu dans l'ombrage, il faut travailler l'image en .png (gestion de la transparence)
Les paramètres de taille et de décalage (frame, shadow) sont à moduler selon la taille de l'image de départ.
En supprimant les 2 dernières lignes, on récupère directement le .png, ce qui permet de bénéficier de la transparence de l'ombrage ...
Pour l'intégrer comme script Thunar :
- rendre éxécutable le script
- configurer l'action Thunar avec
/chemin/vers/le/scripts.sh %F
comme commande et cocher "Fichiers Image" dans "Conditions d'apparition" ...
That's all ...
pgen
Hors ligne
#9 Le 16/03/2015, à 09:06
- enebre
Re : ajouter une fonction au script image "résolu"
pge bonjour,
C'est très chouette, exactement ce que j’espérais.
Merci beaucoup
Et ça c'est la cerise sur le gâteau...
# 2 lignes suivantes à commenter pour récupérer photos en .png (avec transparence)
Dernière modification par enebre (Le 16/03/2015, à 09:32)
Hors ligne