Page 1 of 1
Question de debutant
Posted: Tue May 04, 2021 6:39 pm
by deheme
Bonjour,
J’utilise Xnconvert qui satisfait mon besoin personnel.
Cependant je voudrais écrire un script autonome (sans devoir installer un logiciel, juste avec nconvert.exe et eventuellement une dll) pour des adhérents d’un club photo (encore plus debutants) qui ferait la chose suivante.
En deposant une photo ou un repertoire contenant des photos sur le .bat ce dernier redimensionne les photos en 1920px grand côté, compression 80% reechantillonné Lancoz puis renomme les sorties en ajoutant _1920 au nom dans le même répertoire
Est-ce possible ”simplement” avec nconvert?
merci
DéHème
Re: Question de debutant
Posted: Thu May 06, 2021 6:36 am
by xnview
Oui, avez vous essayez de sortir une base de script avec XnConvert?
Re: Question de debutant
Posted: Thu May 06, 2021 9:57 am
by deheme
xnview wrote: Thu May 06, 2021 6:36 am
Oui, avez vous essayez de sortir une base de script avec XnConvert?
Merci,
Bon c'est bon signe "je peux le faire" mais je ne comprends pas bien la suite de votre phrase.
J'ai généré un .bat à partir de Xnconvert (Exporter pour Nconvert),
Code: Select all
nconvert -ratio -rtype lanczos -rflag decr -resize longest 1920
cependant le script généré me semble incomplet, en ce sens qu'il ne contient pas les noms ni des répertoires, ni des fichiers, et bien que je le lance dans le répertoire contenant les images, il ne se passe rien.
Je ne suis pas au bout de mes peines sans doute, mais suis-je dans la bonne direction?
DéHème
(Veuillez noter que je ne suis pas un spécialiste des lignes de commande mais j'ai fait des scripts avec exiftool, je suppose que c'est le même principe)
Re: Question de debutant
Posted: Fri May 07, 2021 7:14 am
by xnview
Oui essayez quelque chose comme
Code: Select all
nconvert -ratio -rtype lanczos -rflag decr -resize longest 1920 -q 80 -o destination\%%_1920 source\*
Re: Question de debutant
Posted: Fri May 07, 2021 1:56 pm
by deheme
Merci Pierre, j'avance :
Pour un répertoire complet :
Code: Select all
%~dp0\nconvert.exe -ratio -rtype lanczos -rflag decr -resize longest 1920 -q 80 -o %1\%%_1920 %1\*
Pour une image seule :
Code: Select all
%~dp0\nconvert.exe -ratio -rtype lanczos -rflag decr -resize longest 1920 -q 80 -o %1\%%_1920 %1
Ce script permet de glisser déposer répertoire sur le script et l’exécuter (script et nconvert dans le même répertoire, images n'importe où).
Le glisser-déposer fonctionne avec l'explorateur Windows mais ne fonctionne apparemment pas avec l'explorateur Xnview (MP).
Cependant, il convertit les images plus petites et celles déjà converties (lorsque je l’exécute plusieurs fois).
J'aimerai :
- avoir un seul script pour image unique ou répertoire en fonction de ce que l'on dépose sur le script
- ne pas générer les images qui sont déjà <= à 1920 sur leur grande dimension,
- écraser les images qui ont déjà été converties par ce script (car l'original a pu changer entre temps) ->
J'ai trouvé l'option -overwrite entre-temps 
- Pas sûr qu'il soit utile de compresser à 80% des images dont la qualité originale est moindre (?)
...ensuite je tâcherai de rajouter une commande shell pour disposer de ce script sur clic droit
Daniel
Re: Question de debutant
Posted: Sat May 08, 2021 5:18 pm
by deheme
Bonsoir,
Voici le script simplifié (j'ai enlevé commentaires et les set de variables). J'ai changé de specs et j'envoie les images réduites dans un sous-répertoire.
Tout fonctionne cependant lorsque le répertoire des images contient un répertoire (ce qui est toujours le cas lorsque j’exécute le script une deuxième fois) j'ai un code erreur :
Can't open file (C:blabla) sur ce répertoire mais les images sont générées.
Note : j'ai découvert l'option -rflag decr
Note : le glissé/déposé à partir de XnviewMP fonctionne contrairement à ce que j'ai écrit au post précédent
Code: Select all
IF %1=="" (goto :eof)
IF EXIST %1%\* (
%~dp0\nconvert.exe -ratio -overwrite -rtype lanczos -rflag decr -resize longest 1920 -q 80 -o $1920\%%_1920 %1\*.*
)ELSE (
for %%A in (%*) do (
%~dp0\nconvert.exe -ratio -overwrite -rtype lanczos -rflag decr -resize longest 1920 -q 80 -o $1920\%%_1920 %%A
)
)
explorer %1
Re: Question de debutant
Posted: Mon May 10, 2021 5:03 pm
by deheme
Bonsoir,
J'ai trouvé une solution pour éviter l'erreur d'ouverture du répertoire (cf Post ci-dessus) :
à la place de
Code: Select all
nconvert.exe -ratio -overwrite -rtype lanczos -rflag decr -resize longest 1920 -q 80 -o $1920\%%_1920 %1\*.*
j'ai mis :
Code: Select all
nconvert.exe -quiet -ratio -overwrite -rtype lanczos -rflag decr -resize longest %V_L% -q %V_q% -o $1920\%%_1920 %1\*.jpg %1\*.jpeg %1\*.png
Ça n'est pas très élégant mais ça fonctionne.
Note j'ai aussi remplacé Longueur et qualité par les variables V_L et V_q.
Daniel