Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/03/2015, à 17: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 sad
merci pour votre attention.

Dernière modification par enebre (Le 16/03/2015, à 15:04)

Hors ligne

#2 Le 15/03/2015, à 18: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, à 18: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, à 18: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, à 18: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, à 18:56)

Hors ligne

#6 Le 15/03/2015, à 22: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, à 22:54)

Hors ligne

#7 Le 15/03/2015, à 23: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é:
Cu40I4D.png

Dernière modification par enebre (Le 15/03/2015, à 23:10)

Hors ligne

#8 Le 16/03/2015, à 02: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, à 10: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... smile

pge a écrit :

# 2 lignes suivantes à commenter pour récupérer photos en .png (avec transparence)

Dernière modification par enebre (Le 16/03/2015, à 10:32)

Hors ligne