Bonjour à tous
Le propriétaire du site cherche un outil qui effectue automatiquement le traitement suivant :
Pour tous les fichiers jpeg d’un répertoire créer une image réduite (vignetté) dont les dimensions sont calculées en fonction des dimensions de l’image originelle
C’est très facile à faire sur le site en php, mais il voudrait un programme qui tourne sur PC.
Connaissez-vous un outil qui permette de faire ça ?
Merci de votre aide
Modérateur
Et l'eau PapyJP,

Si tu sais le faire en php, pourquoi n'utilises-tu pas un script php pour la ligne de commande. La chose plus délicate, c'est devoir parser tous les sous dossiers. Et là pour le coup, php n'est pas vraiment adapter. Tu vas devoir te taper de la récursivité (regarde du côté de l'interface iterator). Dans tous les cas, c'est au moins une des seules choses que php puisse faire en dehors du web (ce genre de tâches => traitement des images). Ton script php, tu le lies (lier) à un script bash. Ensuite, tu en fais un exe et puis il n'y a plus qu'à le lancer....
Modifié par niuxe (08 Mar 2021 - 18:49)
Modérateur
Bonjour,

J'imagine que le PC en question n'a pas de serveur web, et donc pas de php.

Voici quelques solutions ci-dessous.

Solution 1 :
Utiliser un des nombreux outils de traitement d'image. Par exemple https://imagemagick.org/ (nécessite de télécharger l'outil en question sur le PC).

Eventuellement, mettre au point un .bat (ou tout autre script windows) qui va utiliser l'outil en question en ligne de commande pour faire exactement la tâche voulue automatiquement.

Exemple de script en ligne de commande avec imagemagick :
cd myDir
convert myImg.jpg -resize 50% myImgSmall.jpg


Il y a moyen de convertir tout un répertoire si on le souhaite (il faut chercher un peu dans windows comment faire ça, mais ce n'est pas ma tasse de thé).

imagemagick est une usine à gaz. Mais on est à peu près sûr de pouvoir faire ce que l'on souhaite.

Solution 2 :
Faire un script en python (nécessite de faire le script, mais on trouve plein d'exemples qui font du redimensionnement d'images, et nécessite d'installer python sur le PC).

Solution 3 :
Faire un programme spécifique en C/C++/C# (nécessite de faire le programme en question, mais il n'y aura ensuite que le programme ainsi fabriqué à installer sur le PC).

Amicalement,
Merci de ta réponse
Le propriétaire voulait utiliser un "script PhotoShop" mais pour autant que j’ai pu comprendre ce n’est qu’un enregistreur d’une série d’actions sans possibilité de "if then else"
L’algorithme est simplisme : en fonction des proportions de l’image créer une miniature de x pixels de large ou de y pixels de haut, mais ça exige d’avoir la largeur et la hauteur de l’image, ce qui est trivial en php ou autre langage de ce type ou même en JavaScript.
Je crois que je vais faire une appli web, mais il faudra qu’il télécharge la miniature ce qui n’est pas simple pour lui.
Une idée pour faire un téléchargement avec un seul clic?
Modérateur
Bonjour,

1) Il y a des commandes imagemagick qui permettent de connaitre la taille de l'image. Pour les if ... then, c'est la langage de script de windows qui peut le faire, de même que parcourir tout un dossier, créer un sous-dossier, etc. En résumé, il suffit de faire un script windows utilisant ici et là des commandes d'imagemagick.

2) Si tu choisis de faire une page web dédiée à cette tâche, pour pouvoir télécharger en un seul clic, le plus simple est sans doute de faire un .zip côté serveur avec php.

Amicalement,
Modérateur
parsimonhi a écrit :


Solution 1 :
Utiliser un des nombreux outils de traitement d'image. Par exemple https://imagemagick.org/ (nécessite de télécharger l'outil en question sur le PC).

Eventuellement, mettre au point un .bat (ou tout autre script windows) qui va utiliser l'outil en question en ligne de commande pour faire exactement la tâche voulue automatiquement.

Exemple de script en ligne de commande avec imagemagick :
cd myDir
convert myImg.jpg -resize 50% myImgSmall.jpg


Il y a moyen de convertir tout un répertoire si on le souhaite (il faut chercher un peu dans windows comment faire ça, mais ce n'est pas ma tasse de thé).

imagemagick est une usine à gaz. Mais on est à peu près sûr de pouvoir faire ce que l'on souhaite.

Solution 2 :
Faire un script en python (nécessite de faire le script, mais on trouve plein d'exemples qui font du redimensionnement d'images, et nécessite d'installer python sur le PC).


J'ai pensé à ces solutions.

Pour ImageMagick et comme tu l'as souligné, c'est une usine à gaz. Enfin, du moins, je ne maîtrise pas le sujet. Mais c'est une solution honorable.

Pour la solution Python, bien sûr que c'est la meilleure et il n’y a pas photo (sans jeu de mot). Je veux dire par là, c'est la solution la plus rapide à mettre en place. En 30 minutes ton script est conçu :
- os (avec l'utilisation de walk)
- glob (au cas où)
- Pillow (le portage de ImageMagick)
- Soit tu te crées une interface GUI (PyQT ou Tkinter) ou soit la ligne de commande (avec argument ou prompt)

Comme je l'ai dit, la solution de php en ligne de commande (je vois pas l'intérêt d'un serveur) est tout aussi envisageable.
Merci beaucoup
Je ne connais pas Python (les quelques sites dont j’ai eu à m’occuper sont hébergés sur des serveurs utilisant php). Apprendre un nouveau langage? Pourquoi pas mais ça prends du temps.
Quant au PHP sur pc ça veut dire y installer un serveur. Je vois mal le propriétaire du site faire ça sur son pc. Son rôle c’est d’écrire du texte et fabriquer des images, le mien c’est de lui fournir des outils. C’est un équilibre qui a été difficile à établir.
Pour l’instant il fait les miniatures à la main sous Photoshop. Si je lui fait un outil pour faciliter le processus il ne faut pas que l’outil soit plus difficile à utiliser que d’utiliser Photoshop.
Bonjour,

Il semble qu'IrfanView soit capable de faire ça au travers de boîtes de dialogue:
https://www.techovity.com/batch-resize-images-using-irfanview/

Je vois une case à cocher "Include subdirectories", et il y a ensuite un gros paquet d'options pour le redimensionnement.

Après, il faut foir si ça s'applique totalement à ce que tu souhaites.

Bon courage.
Modifié par loicbcn (09 Mar 2021 - 11:33)
Merci de ta réponse
J'ai IrfanView parmi mes outils, ce n'est pas exactement ce que je cherche.
Après réflexion nous avons décidé de laisser tomber, cela demanderait plus de travail que ça présenterait d'utilité.
Merci de vos réponses qui nous ont permis d'y voir plus clair.