Vous n'êtes pas identifié(e).
#!/bin/bash
COMMAND="convert -quality 60 -size 1024x768"
# (syntaxe bash) Si on a moins de deux arguments, on quitte
[ $# -ne 2 ] && echo 'J'\''ai besoin de deux arguments !' && exit 1
# (syntaxe bash) 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"
DEST="$2"
# (syntaxe bash) Si et seulement si le répertoire de destination existe, on le crée
# avec éventuellement les répertoires parents qui vont bien
[ ! -d "$DEST" ] && mkdir -p "$DEST"
# Ça marche avec les .jpg .jpeg .png .JPG .JPEG .PNG
# - les ( ) entourent l'ensemble des conditions pour que -exec s'applique à toutes
# - execdir renvoie "./fichier.jpg" plutôt que "/chemin/vers/fichier.jpg" et
# exécute la commande dans le répertoire où se trouve le fichier
find "$SOURCE" \( -iname "*.jpg" -o iname "*.jpeg" -o iname "*.png" \) -execdir $COMMAND {} "$DEST"/{} \;
Réponse :
find: paths must precede expression: iname
Si y'en a un pour expliquer la syntaxe et completer l'bidule... j'suis d'ssus...
Amitie, Joel
Dernière modification par smolski (27-11-2008 11:16:32)
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Desktop: Debian BullsEye (Core I5 - 16Go - SSD + 2HDD et NAS Netgear)
Laptop 1: BullsEye (PackardBell TS 44, Core I5, 4Go, SSD), Laptop 2: BullsEye (Lenovo, Core I5, 8Go, SSD)
EeePC : Debian Jessie (Atom N450, 2 Go)
Raspberry Pi B+: Raspbian (Stretch)
Hors ligne
COMMAND="mogrify -quality 10"
...
Pour le script, je reste avec le meme message (en entier s'coussi...) :
find: paths must precede expression: iname
Usage: find [-H] ... [expression] (tous les [...] possibles du man find)
malgres cette nouvelle commande...:P
Amitie, Joel
Dernière modification par smolski (26-11-2008 16:42:58)
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Moi je partirai différemment. genre
Tu peux l'utiliser en ligne de commande avec les variables précédemment définies. Ça tient sur une ligne, je l'ai décomposé pour la lisibilité.
@+
Les lignes commentées sont là pour mémoire, et sont des lignes de commandes de rechange en fonction des besoins.
convert est une commande qui implique la création d'un nouveau fichier à partir du fichier d'origine. Donc à la fin de l'opération le fichier d'origine existe toujours. mogrify implique la modification du fichier d'origine, ce qui fait qu'à la fin de l'opération le fichier d'origine n'existe plus et a été substitué par le nouveau fichier modifié.
C'est la raison pour laquelle mon script démarre par la création d'un nouveau (sous-)répertoire où les fichiers modifiés seront copiés.
En espérant que cela aide.
PS : je me suis inspirée d'un tuto sur commencamarche.net et j'ai demandé son aide à quelqu'un sachant écrire bash correctement contrairement à moi : depuis, je me contente de modifier valeurs et options selon mes besoins, à l'aide du man en cas de nécessité.
et interlace c'est surtout pour les images à publier sur le web, et donc qui ont besoin d'être légères pour passer sur toutes les qualités de connexions : ça les allège, sachant que 'interlace line' les fait apparaître de manière progressive.
À titre de démonstration, voici un billet contenant une galerie d'images modifiées à l'aide d'un script similaire[¹] à celui-ci. La conservation des qualités visuelles en même temps que le redimensionnement par lots, est le gros avantage de ce type de script.
[¹] Avant d'avoir le bon pourcentage de réduction, je dois m'y reprendre à plusieurs fois. Si j'ai besoin d'une précision optimale, je fais un échantillon avec Gimp (un modèle avec un calque vide de la taille que je veux obtenir), puis un calcul type règle de trois (le rapport entre le modèle d'origine et le calque vide représentant la taille que je veux réussir à avoir ) pour obtenir un %age que je puisse appliquer à tout le lot.
le blog d'une newbie :: Linuxvillage :: Bentovillage
À propos de l'OS dominant ::> “Il est plus facile de berner les gens que de leur faire admettre qu'ils ont été bernés” (trad d'une citation approximative de Mark Twain)
Hors ligne
On peut d'ailleurs avoir un script avec deux arguments : mettez le contenu ci-dessous dans un fichier exécutable appelé redimensionne (dans votre path, /usr/local/bin par exemple), et si vous tapez redimensionne /chemin/de/source /chemin/de/destination, cela fera ce à quoi vous vous attendez. Si vous avez des espaces dans vos noms de répertoires, pensez à les entourer de guillemets.
#!/bin/bash
COMMAND="convert -quality 60 -size 1024x768"
# (syntaxe bash) Si on a moins de deux arguments, on quitte
[ $# -ne 2 ] && echo 'J'\''ai besoin de deux arguments !' && exit 1
# (syntaxe bash) 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"
DEST="$2"
# (syntaxe bash) Si et seulement si le répertoire de destination existe, on le crée
# avec éventuellement les répertoires parents qui vont bien
[ ! -d "$DEST" ] && mkdir -p "$DEST"
# Ça marche avec les .jpg .jpeg .png .JPG .JPEG .PNG
# - les ( ) entourent l'ensemble des conditions pour que -exec s'applique à toutes
# - execdir renvoie "./fichier.jpg" plutôt que "/chemin/vers/fichier.jpg" et
# exécute la commande dans le répertoire où se trouve le fichier
find "$SOURCE" \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -execdir $COMMAND {} "$DEST"/{} \;
Ca marche
Edit : Perso, suite aux conseils de Melodie et Freddec a consulter le man convert , j'utilise :
COMMANDE="convert -strip -quality 60 -resize n x n
# n=(un chiffre) le chiffrage exact de mes vignettes en pixel.
# -strip sert a enlever les indications de prise de vue inutiles sur un site. (EXIF)
Amitie, Joel
Dernière modification par smolski (29-11-2008 09:09:48)
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
le blog d'une newbie :: Linuxvillage :: Bentovillage
À propos de l'OS dominant ::> “Il est plus facile de berner les gens que de leur faire admettre qu'ils ont été bernés” (trad d'une citation approximative de Mark Twain)
Hors ligne
Dernière modification par smolski (27-11-2008 21:30:12)
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Un outil puissant dope l'imaginaire ! La vie est belle avec Debian !
Ce n'est pas une particularité de Debian, c'est la magie de la ligne de commande qui commence à opérer.
@+
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne