Question de debutant

Discussions on NConvert - the command line tool for image conversion and manipulation

Moderators: XnTriq, xnview

deheme
Posts: 5
Joined: Tue May 04, 2021 6:01 pm

Question de debutant

Post 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
User avatar
xnview
Author of XnView
Posts: 36461
Joined: Mon Oct 13, 2003 7:31 am
Location: France

Re: Question de debutant

Post by xnview »

Oui, avez vous essayez de sortir une base de script avec XnConvert?
Pierre.
deheme
Posts: 5
Joined: Tue May 04, 2021 6:01 pm

Re: Question de debutant

Post 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)
User avatar
xnview
Author of XnView
Posts: 36461
Joined: Mon Oct 13, 2003 7:31 am
Location: France

Re: Question de debutant

Post 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\*
Pierre.
deheme
Posts: 5
Joined: Tue May 04, 2021 6:01 pm

Re: Question de debutant

Post 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 :D
- 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
deheme
Posts: 5
Joined: Tue May 04, 2021 6:01 pm

Re: Question de debutant

Post 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 :D
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
deheme
Posts: 5
Joined: Tue May 04, 2021 6:01 pm

Re: Question de debutant

Post 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