Bonjour, est-ce que quelqu'un sait s'il y a un moyen de faire plein collection d'image automatiquement (ou relativement automatiquement) ?
Pour le contexte, je suis en possession de quelque milliers d'images, qui sont en réalité des moitié d'image et il me faut les assembler verticalement.
La manipulation est assez facile à faire dans xnview grâce à la création de collection d'image mais cela nécessite de faire la manipulation pour chaque paire d'image.
Et après en avoir traité environ une centaine, je commence à me dire que je n'en verrai jamais le bout ^_^"
Donc si quelqu'un sait comment je pourrait automatiser ne serait-ce qu'un petit peu la procédure, je vous en serait grandement reconnaissant.
Création multiples de collections d'images
Moderator: xnview
-
WilliShakes
- Posts: 6
- Joined: Tue Feb 17, 2026 12:56 pm
-
cday
- XnThusiast
- Posts: 4524
- Joined: Sun Apr 29, 2012 9:45 am
- Location: Cheltenham, U.K.
Re: Création multiples de collections d'images
Bonjour,WilliShakes wrote: Tue Feb 17, 2026 5:18 pm Pour le contexte, je suis en possession de quelque milliers d'images, qui sont en réalité des moitié d'image et il me faut les assembler verticalement.
La manipulation est assez facile à faire dans xnview grâce à la création de collection d'image mais cela nécessite de faire la manipulation pour chaque paire d'image.
Utilisation de Outils > Planche d'images pour chaque paire de fichiers ?
Si tel est le cas, cela n'est probablement possible qu'à l'aide d'un script NConvert ...
Et à moins que l'équivalent de « plance d'image » ne soit désormais pris en charge, cela peut se faire indirectement en étendant la première toile d'image afin de créer de l'espace pour la deuxième image, puis en collant la deuxième image sur la toile étendue à l'aide de l'action « Watermark » ['Filigrane'] ...
-
michel038
- XnThusiast
- Posts: 1508
- Joined: Tue Sep 27, 2016 8:18 am
- Location: France
Re: Création multiples de collections d'images
Je n'ai pas étudié la question, mais peut-être une idée si elles ont toutes les mêmes dimensions : assembler par exemple 24 images en une seule, et ensuite diviser le résultat en 12 ?
Si nécessaire, redimensionner les images au préalable, au moins pour chaque lot à traiter.
Et si la mémoire du pc le supporte, essayer sur 240 images d'un coup ? Avec XnviewMP, plus moderne, j'imagine que la gestion des gros fichiers est meilleure ?
Si nécessaire, redimensionner les images au préalable, au moins pour chaque lot à traiter.
Et si la mémoire du pc le supporte, essayer sur 240 images d'un coup ? Avec XnviewMP, plus moderne, j'imagine que la gestion des gros fichiers est meilleure ?
Catalogage avec XnviewMP :
https://orchisere.fr/logiciels/html/xnviewmpintro.htm
Tutoriel exiftool : https://orchisere.fr/logiciels/html/exiftool.htm
https://orchisere.fr/logiciels/html/xnviewmpintro.htm
Tutoriel exiftool : https://orchisere.fr/logiciels/html/exiftool.htm
-
WilliShakes
- Posts: 6
- Joined: Tue Feb 17, 2026 12:56 pm
Re: Création multiples de collections d'images
Merci beaucoup pour la réponse.cday wrote: Tue Feb 17, 2026 6:36 pm Bonjour,
Utilisation de Outils > Planche d'images pour chaque paire de fichiers ?
Si tel est le cas, cela n'est probablement possible qu'à l'aide d'un script NConvert ...
Et à moins que l'équivalent de « plance d'image » ne soit désormais pris en charge, cela peut se faire indirectement en étendant la première toile d'image afin de créer de l'espace pour la deuxième image, puis en collant la deuxième image sur la toile étendue à l'aide de l'action « Watermark » ['Filigrane'] ...
J'ai essayer de chercher comment utiliser Nconvert et s'il est possible de le faire avec et...
Ouf Nconvert est vraiment pas facile à comprendre mais après pas mal d'essais et quelques cheveux arrachés, j'ai à peut près compris comment ça fonctionne et j'ai trouvé que Nconvert ne peux pas faire de collections d'images.
Par contre il peut ajouter des filigrane comme tu l'as suggéré (une idée de génie vraiment !).
Ensuite je me un peu cassé la tête pour trouver comment faire l'opération sur toutes mes images mais j'ai fini par trouver !
Il m'a fallu générer un ligne de commande Nconvert pour chaque paire d'images (donc faire l'opération sur la 1r et ajouter la 2m en filigrane) et mettre tout ça dans un fichier bat et... Tadam ! Ça fonctionne.
Enfin presque, j'ai mis un moment à comprendre que rien n'est par défaut dans Nconvert donc il faut s'assurer que toute les options de qualité soient présentes dans les commandes.
Bref, tout ça pour dire que j'ai ma solution et c'est grâce à vous merci !
-
WilliShakes
- Posts: 6
- Joined: Tue Feb 17, 2026 12:56 pm
Re: Création multiples de collections d'images
Oh idée intéressante, j'aurai sûrement fait ça si je n'avait pas réussi à le faire avec des filigranes. Ça m’aurait permit d'aller beaucoup plus vite que de faire la manip pour chaque paires. Merci !michel038 wrote: Wed Feb 18, 2026 10:16 am Je n'ai pas étudié la question, mais peut-être une idée si elles ont toutes les mêmes dimensions : assembler par exemple 24 images en une seule, et ensuite diviser le résultat en 12 ?
Si nécessaire, redimensionner les images au préalable, au moins pour chaque lot à traiter.
Et si la mémoire du pc le supporte, essayer sur 240 images d'un coup ? Avec XnviewMP, plus moderne, j'imagine que la gestion des gros fichiers est meilleure ?
-
cday
- XnThusiast
- Posts: 4524
- Joined: Sun Apr 29, 2012 9:45 am
- Location: Cheltenham, U.K.
Re: Création multiples de collections d'images
I am very pleased that you were able to create an NConvert script that works, could you please be so kind as to post your full code?WilliShakes wrote: Wed Feb 18, 2026 12:57 pm Bref, tout ça pour dire que j'ai ma solution et c'est grâce à vous merci !
DeepL:
Je suis très heureux que vous ayez réussi à créer un script NConvert qui fonctionne. Pourriez-vous avoir l'amabilité de publier votre code complet ?
-
WilliShakes
- Posts: 6
- Joined: Tue Feb 17, 2026 12:56 pm
Re: Création multiples de collections d'images
Bien sûr,cday wrote: Wed Feb 18, 2026 2:42 pm I am very pleased that you were able to create an NConvert script that works, could you please be so kind as to post your full code?
DeepL:
Je suis très heureux que vous ayez réussi à créer un script NConvert qui fonctionne. Pourriez-vous avoir l'amabilité de publier votre code complet ?
Mes images étaient organisées comme ça (j'ai simplifié le chemin et les tailles pour mieux comprendre) :
- A:
- └─ images
- ├─ 0001-1.jpg (1000x1000 pixels)
├─ 0001-2.jpg (1000x1000 pixels)
├─ 0002-1.jpg (1000x1000 pixels)
├─ 0002-2.jpg (1000x1000 pixels)
├─ [...]
├─ 1000-1.jpg (1000x1000 pixels)
└─ 1000-2.jpg (1000x1000 pixels)
- ├─ 0001-1.jpg (1000x1000 pixels)
- └─ images
Code: Select all
nconvert -canvas 1000 2000 top-left -wmopacity 100 -wmpos 0 1000 -wmfile "A:\images\0001-2.jpg" -out jpeg -q 100 -opthuff -dct 2 -subsampling 2 "A:/images/0001-1.jpg"
nconvert -canvas 1000 2000 top-left -wmopacity 100 -wmpos 0 1000 -wmfile "A:\images\0002-2.jpg" -out jpeg -q 100 -opthuff -dct 2 -subsampling 2 "A:/images/0002-1.jpg"
[...]
nconvert -canvas 1000 2000 top-left -wmopacity 100 -wmpos 0 1000 -wmfile "A:\images\1000-2.jpg" -out jpeg -q 100 -opthuff -dct 2 -subsampling 2 "A:/images/1000-1.jpg" " -canvas 1000 2000 top-left " redimensionne le canevas en 1000x2000 (lxh) et positionne ce qu'il y avait dans l'image en haut à gauche du canevas
" -wmopacity 100 " indique que le filigrane ne doit pas être transparent
" -wmpos 0 1000 " indique que le filigrane doit être placé aux position x=0 et y=1000 (donc 0 pixels plus loin que le coté gauche et 1000 pixels plus bas que le coté haut)
" -wmfile "A:\images\1000-2.jpg" " indique le fichier à insérer en filigrane
" -out jpeg -q 100 " indique que le fichier créer doit être au format jpg avec une qualité de 100
" -opthuff " indique qu'il faut optimiser les tables d'Huffman lors de la création du jpg
" -dct 2 " indique qu'il faut utiliser la methode DCT "flottant" lors de la création du jpg
" -subsampling 2 " indique qu'il faut utiliser le sous-échantillonnage 4:4:4 (1x1,1x1,1x1) lors de la création du jpg
" "A:/images/1000-1.jpg" " indique sur quelle image il faut faire les opérations
Ce qui fait qu'on se retrouve avec ça :
- A:
- └─ images
- ├─ 0001-1.jpg (1000x1000 pixels)
├─ 0001-1_1.jpg (1000x2000 pixels)
├─ 0001-2.jpg (1000x1000 pixels)
├─ 0002-1.jpg (1000x1000 pixels)
├─ 0002-1_1.jpg (1000x2000 pixels)
├─ 0002-2.jpg (1000x1000 pixels)
├─ [...]
├─ 1000-1.jpg (1000x1000 pixels)
├─ 1000-1_1.jpg (1000x2000 pixels)
└─ 1000-2.jpg (1000x1000 pixels)
- ├─ 0001-1.jpg (1000x1000 pixels)
- └─ images
-
cday
- XnThusiast
- Posts: 4524
- Joined: Sun Apr 29, 2012 9:45 am
- Location: Cheltenham, U.K.
Re: Création multiples de collections d'images
Many thanks, do I understand that you have to copy, paste and edit code for each image file pair processed?
Wouldn't it be possible to use some form of loop with a wildcard or if necessary wildcards to allow an arbitrary number of loaded file pairs to be processed?
Note: To be honest loops (a FOR loop presumed) always gave me a headache...
DeepL:
Merci beaucoup, si je comprends bien, il faut copier, coller et modifier le code pour chaque image paire de fichiers traitée ?
Ne serait-il pas possible d'utiliser une boucle avec un caractère générique ou, si nécessaire, plusieurs caractères génériques pour permettre le traitement d'un nombre arbitraire de paires de fichiers chargés ?
Remarque : pour être honnête, les boucles (une boucle FOR, je suppose) m'ont toujours donné mal à la tête...
Traduit avec DeepL.com (version gratuite)
Wouldn't it be possible to use some form of loop with a wildcard or if necessary wildcards to allow an arbitrary number of loaded file pairs to be processed?
Note: To be honest loops (a FOR loop presumed) always gave me a headache...
DeepL:
Merci beaucoup, si je comprends bien, il faut copier, coller et modifier le code pour chaque image paire de fichiers traitée ?
Ne serait-il pas possible d'utiliser une boucle avec un caractère générique ou, si nécessaire, plusieurs caractères génériques pour permettre le traitement d'un nombre arbitraire de paires de fichiers chargés ?
Remarque : pour être honnête, les boucles (une boucle FOR, je suppose) m'ont toujours donné mal à la tête...
Traduit avec DeepL.com (version gratuite)
-
WilliShakes
- Posts: 6
- Joined: Tue Feb 17, 2026 12:56 pm
Re: Création multiples de collections d'images
Je n'ai pas eu besoin de modifier chaque ligne, j'ai directement générer toutes les lignes de manière séquentielle.cday wrote: Wed Feb 18, 2026 7:21 pm Many thanks, do I understand that you have to copy, paste and edit code for each image file pair processed?
Wouldn't it be possible to use some form of loop with a wildcard or if necessary wildcards to allow an arbitrary number of loaded file pairs to be processed?
Note: To be honest loops (a FOR loop presumed) always gave me a headache...
DeepL:
Merci beaucoup, si je comprends bien, il faut copier, coller et modifier le code pour chaque image paire de fichiers traitée ?
Ne serait-il pas possible d'utiliser une boucle avec un caractère générique ou, si nécessaire, plusieurs caractères génériques pour permettre le traitement d'un nombre arbitraire de paires de fichiers chargés ?
Remarque : pour être honnête, les boucles (une boucle FOR, je suppose) m'ont toujours donné mal à la tête...
Traduit avec DeepL.com (version gratuite)
Une manière simple et graphique de le faire est d’utiliser un tableur :
╔═════════════════╤═════╤════════════════╤═════╤═════╗
║ nconvert [...] "A:\images\ │ 0001 │ -2.jpg" [...] "A:/images/ │ 0001 │ -1.jpg" ║
╠═════════════════╪═════╪════════════════╪═════╪═════╣
║ =$A$1 │ =B1+1 │ =$C$1 │ =D1+1 │ =$E$1 ║
╚═════════════════╧═════╧════════════════╧═════╧═════╝
Ensuite, il suffit d'étendre la deuxième ligne jusqu'au nombre total d'images ; Puis tout copier et de faire le fichier bat avec (bien penser à retirer les tabulation s'il y en a).
Je ne connaissait pas le système de boucle dans les scripts batch, je suis en train de regarder ça mais pour l'instant j'ai l'impression que ça permet de faire une commande un certain nombre de fois sur plusieurs fichiers mais si la commande est différente pour chaque fichier, je ne sais pas si c'est possible...
-
cday
- XnThusiast
- Posts: 4524
- Joined: Sun Apr 29, 2012 9:45 am
- Location: Cheltenham, U.K.
Re: Création multiples de collections d'images
A practical solution that was easy for you to implement...WilliShakes wrote: Wed Feb 18, 2026 8:35 pm Je n'ai pas eu besoin de modifier chaque ligne, j'ai directement générer toutes les lignes de manière séquentielle.
Une manière simple et graphique de le faire est d’utiliser un tableur :
╔═════════════════╤═════╤════════════════╤═════╤═════╗
║ nconvert [...] "A:\images\ │ 0001 │ -2.jpg" [...] "A:/images/ │ 0001 │ -1.jpg" ║
╠═════════════════╪═════╪════════════════╪═════╪═════╣
║ =$A$1 │ =B1+1 │ =$C$1 │ =D1+1 │ =$E$1 ║
╚═════════════════╧═════╧════════════════╧═════╧═════╝
Ensuite, il suffit d'étendre la deuxième ligne jusqu'au nombre total d'images ; Puis tout copier et de faire le fichier bat avec (bien penser à retirer les tabulation s'il y en a).
Pas exactement, it should be possible to execute the required code for each file in a folder, number unspecified, but possibly best avoided unless it interests you...Je ne connaissait pas le système de boucle dans les scripts batch, je suis en train de regarder ça mais pour l'instant j'ai l'impression que ça permet de faire une commande un certain nombre de fois sur plusieurs fichiers mais si la commande est différente pour chaque fichier, je ne sais pas si c'est possible...
Meanwhile, I have thought of a possible alternative solution that does not need a FOR loop, if it interests you now that you have a viable solution:
1. Use a small piece of very cryptic code that I have somewhere to count the number of source files to be processed;
2. Define one or two or three variables, as needed, and include them in your code;
3. After each source file pair is processed, decrement the source file count;
4. When the source file count reaches zero, exit that loop.
-
WilliShakes
- Posts: 6
- Joined: Tue Feb 17, 2026 12:56 pm
Re: Création multiples de collections d'images
Plus je connais de façon de faire quelque chose, plus j'ai de chance de m'en sortir en cas de problèmes futurs. Donc j'adorerais apprendre cette autre solution !cday wrote: Wed Feb 18, 2026 9:46 pm Meanwhile, I have thought of a possible alternative solution that does not need a FOR loop, if it interests you now that you have a viable solution:
1. Use a small piece of very cryptic code that I have somewhere to count the number of source files to be processed;
2. Define one or two or three variables, as needed, and include them in your code;
3. After each source file pair is processed, decrement the source file count;
4. When the source file count reaches zero, exit that loop.