Nous sommes le Dim 29 Juin, 2025 23:55
Supprimer les cookies

Page 1 sur 31, 2, 3 SuivantConvertir des jpg en format standard

Pour une tâche précise, pour remplacer un logiciel propriétaire donné...

Mer 07 Mai, 2008 17:27

Bonjour à tous,


Voilà mon soucis, j'ai toute ma musique classée comme ceci Artiste/Album/ et dans chaque dossier d'album j'ai un fichier folder.jpg correspondant à la pochette or ils ne sont pas tous en format standard, la majorité sont même en format progressif or pour être reconnus sur mon baladeur mp3 ils doivent absolument être en standard.

Je recherche donc un programme qui puisse me faire la conversion en écrasant à chaque fois le fichier folder.jpg par le nouveau (ou en laissant l'ancien sous un autre nom au cas où), donc sans passer par un dossier d'exportation commun car Windows risque ne va pas vouloir pleins de fichier folder.jpg dans le même dossier et de mon coté je n'ai aucune envie de les renvoyer tous à leur bonne place...


Votre aide me serait d'un grand recours, que ce soit un programme spécifique ou une commande à taper dans ImageMagick qui à mon avis doit être capable de faire un truc pareil mais je ne sais pas vraiment l'utiliser...


Par avance merci.
Pier²e

Messages : 36

Mer 07 Mai, 2008 19:02

Tu es sous linux ou windows?
Je pense que ImageMagick peut facilement le faire. Tu as essayé ceci:
Code: Tout sélectionner
convert -interlace none folder.jpg folder.jpg

Il te convertit l'image en une image non progressive et remplace l'ancienne par la nouvelle.
lebendre

Messages : 1417
Géo : Sur ma montagne

Mer 07 Mai, 2008 23:50

Je suis sous Windows...

En fait j'aimerais pouvoir lancer la commande sur mon dossier général Musique afin que les modifications soit opérées dans tous les sous-dossiers (artiste/album) dans lesquels il y a des folder.jpg.

Je suppose que ta commande fonctionne dans le dossier courant, non ?
Pier²e

Messages : 36

Jeu 08 Mai, 2008 09:06

Pier²e a écrit:Je suis sous Windows...


Pour installer Imagemagick sous Windows.

En fait j'aimerais pouvoir lancer la commande sur mon dossier général Musique afin que les modifications soit opérées dans tous les sous-dossiers (artiste/album) dans lesquels il y a des folder.jpg.

Je suppose que ta commande fonctionne dans le dossier courant, non ?


Des exemples concrets d'utilisation.

J'imagine que sous Windows aussi il doit être possible d'utiliser l'option récursive, soit -r, soit -R, dans l'invite de commande. Tu trouveras en faisant des essais avec un répertoire de test, un ou deux sous-répertoires test1 et test2, le tout contenant quelques images.
LinuxVillage - http://linuxvillage.org
Site d'entraide d'utilisateurs GNU/Linux
Mélodie

Messages : 4555
Géo : France

Mar 10 Juin, 2008 15:25

Oula le temps passe vite, je n'avais pas eu le temps de faire de nouveaux essais...

Pour l'installation c'était déjà fait par contre j'ai essayé comme tu me l'a dis mais je n'ai rien trouvé pour faire une fonction récursive sous Windows, si quelqu'un connait un moyen d'exécuter la commande sur tous les dossiers et sous-dossiers d'un dossier parent je prends ! J'ai pensé le faire avec un batch mais je n'ai pas trouvé pour autant :-(


Merci.
Pier²e

Messages : 36

Mar 10 Juin, 2008 16:36

Bonjour,

Sous windows il faut faire :
Code: Tout sélectionner
cd \ma_musique (si c'est le répertoire racine qui contient la musique stockée)
dir /s /-p /b folder.jpg > liste.txt

Le /s va rendre la recherche récursive
Le /-p supprimer l'éventuel pause
Le /b supprimer les commentaires inutiles

Dans le fichier liste.txt tu vas trouver la liste des répertoires contenant le fichier folder.jpg.
Exemple :
x:\ma_musique\artiste num1\album num1\folder.jpg
x:\ma_musique\artiste num1\album num2\folder.jpg
x:\ma_musique\artiste num2\album num1\folder.jpg
x:\ma_musique\artiste num3\album num11\folder.jpg


Il faut alors prendre un quelconque blocnote pour ajouter les commandes ligne à ligne, le renommer en .bat et l'exécuter, ou le faire en mode itératif avec la commande "for %i".
Dans ce dernier cas le fichier liste.txt est parcouru ligne à ligne et utilisé comme argument de la commande.
En toute théorie il suffit donc d'écrire :
Code: Tout sélectionner
for /F %i in (liste.txt) do <commande de conversion> %i


Il y a cependant un problème si des espaces sont présents dans le nom des répertoires ou des fichiers eux-mêmes, ce qui arrive fréquement 8)
L'espace étant par défaut le délimiteur de paramètre sous Dos on va l'annuler en disant que la virgule devient ce séparateur

Code: Tout sélectionner
for /F "delims=," %i in (liste.txt) do <commande de conversion> "%i"

Bien noter qu'il faudra aussi encadrer le dernier %i avec des guillemets pour que la commande de conversion s'applique bien sur toute la chaine.
Sinon, pour reprendre mon exemple, la commande ne s'exécutera que sur "x:\ma_musique\artiste' car il s'arrêterait au premier espace.

Cordialement.
L'urgent est fait, l'impossible est en cours, Pour les miracles, prévoir un délai
phylaine

Messages : 173
Géo : Région Parisienne

Mar 10 Juin, 2008 17:18

Merci pour ta réponse mais ça n'a pas l'air de fonctionner :?


J'ai essayé sur un répertoire de test donc je génère le fichier liste.txt qui contient :

Code: Tout sélectionner
C:\essai_img\test1\folder.jpg
C:\essai_img\test2\folder.jpg
C:\essai_img\test2\test3\folder.jpg


Jusque là aucun problème, je lance donc la seconde commande (la simple étant donné qu'il n'y a pas d'espace) :

Code: Tout sélectionner
for /F %i in (liste.txt) do convert -interlace none %i


Et il me répond ceci :


Code: Tout sélectionner
C:\essai_img>convert -interlace none C:\essai_img\test1\folder.jpg
convert: missing an image filename `C:\essai_img\test1\folder.jpg'.

C:\essai_img>convert -interlace none C:\essai_img\test2\folder.jpg
convert: missing an image filename `C:\essai_img\test2\folder.jpg'.

C:\essai_img>convert -interlace none C:\essai_img\test2\test3\folder.jpg
convert: missing an image filename `C:\essai_img\test2\test3\folder.jpg'.



Je ne vois pas d'où vient le problème étant donné que les chemins me paraissent bons !


Merci de ton aide...
Dernière édition par Pier²e le Mar 10 Juin, 2008 17:35, édité 2 fois au total.
Pier²e

Messages : 36

Mar 10 Juin, 2008 17:28

Pourquoi as-tu ça ?

Code: Tout sélectionner
convert -interlace none folder.jpg folder.jpg C:\essai_img\test1\folder.jpg
Cela fait 3 noms de fichier, cela semble un peu trop.

La récursivité ? Non en s'en fiche pour la notation. Mais tu risques d'avoir des suprises puisque tes (deux) noms sont absolus (à savoir folder.jpg). Tu as de grandes chances de réécrire ou d'utiliser la même ressource à chaque fois.
Téthis

Avatar de l’utilisateur
Messages : 3895
Géo : De passage chez les cathares

Mar 10 Juin, 2008 17:32

J'étais en train d'éditer mon message à la vue de ma bétise, ma commande est donc celle-ci :

Code: Tout sélectionner
for /F %i in (liste.txt) do convert -interlace none %i


Mais ça ne fonctionne pas pour autant...
Pier²e

Messages : 36

Mar 10 Juin, 2008 17:46

Si on suit ce qu'a écrit lebendre, il manque un nom de fichier (destination ?) dans la ligne de commande pour que la syntaxe de convert soit correcte.
Téthis

Avatar de l’utilisateur
Messages : 3895
Géo : De passage chez les cathares

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit