Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 13-11-2009 18:33:18

damien
Modo / Rédacteur Wiki
Lieu : St Etienne
Distrib. : Debian Jessie 8
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome3
Inscription : 22-09-2008
Site Web

[Résolu] Convertir dans plusieurs sous-répertoires des png en jpg

Salut

Je suis en train de créer un script qui me permet de convertir plusieurs images dans plusieurs sous-répertoires

$ cd /home/damien/test/


Dans ce répertoire il y a 3 sous-répertoires appelés 1,2 et 3.

Voici le script que je nomme png2jpgtest

#!/bin/bash

COMMAND="convert -quality 80 test.png test.jpg"

# Si on a moins d'un argument, on quitte
[ $# -ne 1 ] && echo 'J'\''ai besoin d'\''un argument !' && exit 1
# Si le répertoire source n'existe pas, on quitte
[ ! -d "$1" ] && echo 'J'\''ai besoin d'\''un répertoire de source valide !' && exit 1
SOURCE="$1"

find "$SOURCE" -iname '*.png' -exec $COMMAND {} \;


J'éxécute le script avec la commande

$ sh png2jpgtest /home/damien/test


Et voici ce que j'obtiens

convert: impossible d'ouvrir l'image `test.png': Aucun fichier ou dossier de ce type @ blob.c/OpenBlob/2480.
convert: impossible d'ouvrir le fichier `test.png' @ png.c/ReadPNGImage/2888.
convert: impossible d'ouvrir l'image `test.jpg': Aucun fichier ou dossier de ce type @ blob.c/OpenBlob/2480.
convert: nom de fichier d'image absent `/home/damien/test/1/test.png' @ convert.c/ConvertImageCommand/2806.
convert: impossible d'ouvrir l'image `test.png': Aucun fichier ou dossier de ce type @ blob.c/OpenBlob/2480.
convert: impossible d'ouvrir le fichier `test.png' @ png.c/ReadPNGImage/2888.
convert: impossible d'ouvrir l'image `test.jpg': Aucun fichier ou dossier de ce type @ blob.c/OpenBlob/2480.
convert: nom de fichier d'image absent `/home/damien/test/2/test.png' @ convert.c/ConvertImageCommand/2806.
convert: impossible d'ouvrir l'image `test.png': Aucun fichier ou dossier de ce type @ blob.c/OpenBlob/2480.
convert: impossible d'ouvrir le fichier `test.png' @ png.c/ReadPNGImage/2888.
convert: impossible d'ouvrir l'image `test.jpg': Aucun fichier ou dossier de ce type @ blob.c/OpenBlob/2480.
convert: nom de fichier d'image absent `/home/damien/test/3/test.png' @ convert.c/ConvertImageCommand/2806.


J'ai vérifié si le fichier test.png éxiste bien dans le répertoire 2 par exemple

~/test/2$ ls
test.png


Je ne vois pas d'où proviens mon erreur

Besoin d'aide SVP
Merci

damien


logo_3dminfographie_signature.png

Hors ligne

#2 13-11-2009 21:03:19

n3os
Modérateur
Lieu : /Debian/Home/neos
Distrib. : Sid
Noyau : 2.6.35
(G)UI : e17
Inscription : 14-07-2007

Re : [Résolu] Convertir dans plusieurs sous-répertoires des png en jpg

Salut,

sinon ce genre fonctionne aussi avec imagemagick

for file in *.png; do convert "$file" "$(basename $file .png).jpg"; done

Hors ligne

#3 14-11-2009 11:13:03

damien
Modo / Rédacteur Wiki
Lieu : St Etienne
Distrib. : Debian Jessie 8
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome3
Inscription : 22-09-2008
Site Web

Re : [Résolu] Convertir dans plusieurs sous-répertoires des png en jpg

Salut neos

#!/bin/bash

COMMAND="for file in *.png; do convert -quality 80 "$file" "$(basename $file .png).jpg"; done"

# Si on a moins d'un argument, on quitte
[ $# -ne 1 ] && echo 'J'\''ai besoin d'\''un argument !' && exit 1
# Si le répertoire source n'existe pas, on quitte
[ ! -d "$1" ] && echo 'J'\''ai besoin d'\''un répertoire de source valide !' && exit 1
SOURCE="$1"

find "$SOURCE" -iname '*.png' -exec $COMMAND {} \;


Comme ça ?
J'ai tester le script il me réponds ce message d'erreur

png2jpgtest: 3: Syntax error: Unterminated quoted string


Il y a un petit problème.

Est-ce que je pourrais tester en ligne de commande avant de l'intégrer dans mon script ?

Merci neos


logo_3dminfographie_signature.png

Hors ligne

#4 14-11-2009 18:23:14

n3os
Modérateur
Lieu : /Debian/Home/neos
Distrib. : Sid
Noyau : 2.6.35
(G)UI : e17
Inscription : 14-07-2007

Re : [Résolu] Convertir dans plusieurs sous-répertoires des png en jpg

Est-ce que je pourrais tester en ligne de commande avant de l'intégrer dans mon script ?

oui j'viens de tester ça fonctionne.

Hors ligne

#5 16-11-2009 20:57:10

damien
Modo / Rédacteur Wiki
Lieu : St Etienne
Distrib. : Debian Jessie 8
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome3
Inscription : 22-09-2008
Site Web

Re : [Résolu] Convertir dans plusieurs sous-répertoires des png en jpg

Voilà la solution

#!/bin/bash

# Si on a moins d'un argument, on quitte
[ $# -ne 1 ] && echo 'J'\''ai besoin d'\''un argument !' && exit 1
# Si le répertoire source n'existe pas, on quitte
[ ! -d "$1" ] && echo 'J'\''ai besoin d'\''un répertoire de source valide !' && exit 1
SOURCE="$1"

find "$SOURCE" -iname 'test.png' -exec convert {} -quality 85 {}.jpg \;
find "$SOURCE" -iname 'test.png.jpg' -exec rename 's/png.jpg/jpg/' test.jpg {} \;
find "$SOURCE" -iname 'test.png' -exec rm -f test.png {} \;


logo_3dminfographie_signature.png

Hors ligne

#6 17-11-2009 02:18:01

MaTTuX_
La Paillasse !!!
Lieu : Zoubidou-Land
Distrib. : 75 serveurs
Noyau : 3.2.0-4-amd64
(G)UI : tty et ... pas gnome en tout cas....
Inscription : 28-05-2007
Site Web

Re : [Résolu] Convertir dans plusieurs sous-répertoires des png en jpg

Tu peux passer le post en resolu wink

\o/ Le closedSource c'est tabou on a viendra tous à bout \o/

Hors ligne

Pied de page des forums