IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Ajouter une image à un dossier.


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut Ajouter une image à un dossier.
    Bonjour,

    Voilà je voulais savoir avant de taper des lignes de commandes, s'il était possible de faire un script qui me permettrait d'associer à un dossier une image présente dans ce même dossier.

    Merci de votre aide.

  2. #2
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    personne n'est capable de me dire si cela est possible ou non ?

    Si vous avez d'autres suggestion pour le faire n'hésitez pas, ce sujet est ouvert tant qu'il reste dans le sujet.

    Merci d'avance pour votre aide

  3. #3
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Bonjour à tous,

    Je reviens après avoir posté ce premier message il y a bien longtemps. Sauf que là je reviens avec un script

    Mais vous l'avez compris j'ai un soucis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    on run
    	set icon_image_file to file "Users:nekcorp:Developpement:AppleScript:Action_Folder:image.jpg" as alias
    	set testdir to file "Users:nekcorp:Developpement:AppleScript:Action_Folder:Folder" as alias
     
    	my saveImageWithItselfAsIcon(icon_image_file)
    	my copyIconOfTo(icon_image_file, testdir)
    end run
     
    on saveImageWithItselfAsIcon(icon_image_file)
    	-- save icon_image_file with itself as icon    
    	set icon_image_file_string to icon_image_file as string
    	tell application "Image Events"
    		launch
    		set icon_image to open file icon_image_file_string
    		save icon_image with icon
    		close icon_image
    	end tell
    end saveImageWithItselfAsIcon
     
    on copyIconOfTo(aFileOrFolderWithIcon, aFileOrFolder)
    	tell application "Finder" to set f to aFileOrFolderWithIcon as alias
    	-- grab the file's icon
    	my CopyOrPaste(f, "c")
    	-- now the icon is in the clipboard
    	tell application "Finder" to set c to aFileOrFolder as alias
    	my CopyOrPaste(result, "v")
    end copyIconOfTo
     
    on CopyOrPaste(i, cv)
    	tell application "Finder"
    		activate
    		open information window of i
    	end tell
    	tell application "System Events" to tell process "Finder" to tell window 1
    		keystroke tab -- select icon button
    		keystroke (cv & "w") using command down (* (copy or paste) + close window *)
    	end tell -- window 1 then process Finder then System Events
    end CopyOrPaste
    Alors ce script fonctionne, mais il y a un truc que je ne comprend pas.

    Les deux premières lignes me permettent de définir le chemin de mon image et celui du dossier auquel je souhaite changer l'icône par l'image.

    Sauf que lorsque je met l'image dans le dossier Folder, le programme fonctionne, mais il ne me change pas l'image du dossier Folder mais celui de l'image elle même (aucun intérêt vous l'aurez compris).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set icon_image_file to file "Users:nekcorp:Developpement:AppleScript:Action_Folder:Folder:image.jpg" as alias
    	set testdir to file "Users:nekcorp:Developpement:AppleScript:Action_Folder:Folder" as alias
    En fait j'ai déjà tout mes dossiers avec les images à l'intérieure (+ de 800) et je souhaite pouvoir que ce script fonctionne sans devoir bidouiller.

    Merci pour votre aide

  4. #4
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir Nekcorp,
    Voici un script qui fonctionne pour toute image / dossier sélectionnés.
    Il cherche le fichier "Image.jpg" qui se trouve dans le dossier sélectionné.

    En commentaire, j'ai aussi mis la version qui demande la sélection du fichier image (lignes 3 et 4 qui remplacent alors les lignes 7 et 8).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    set Dossier to choose folder "Sélectionner un dossier"
    
    -- si tu veux sélectionner le fichier Image
    --set Fichier_Image to choose file "Sélectionner une image"
    
    
    -- si tu veux prendre le fichier Image.jpg qui est dans le dossier
    set Fichier_Image to ((Dossier as string) & "Image.jpg") as alias
    
    
    tell application "Image Events" to set the clipboard to (read Fichier_Image as JPEG picture)
    tell application "Finder"
    activate
    openinformation window of folder (Dossier as text)
    end tell
    delay 1
    tell application "System Events"
    keystroketab
    keystroke "v" usingcommand down
    end tell
    tell application "Finder" to close front window
    Pour être complet, il faudrait simplement ajouter un test d'existence du fichier Image.jgp dans le dossier (pour éviter une erreur si absent !).
    J'ai constaté une certaine lenteur lorsque le fichier Image était une photo de plusieurs Méga...je ne pense pas que ce soit raisonnable d'avoir de telle images pour des icônes !
    Cordialement

  5. #5
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par PBELL Voir le message
    Bonsoir Nekcorp,
    Voici un script qui fonctionne pour toute image / dossier sélectionnés.
    Il cherche le fichier "Image.jpg" qui se trouve dans le dossier sélectionné.

    En commentaire, j'ai aussi mis la version qui demande la sélection du fichier image (lignes 3 et 4 qui remplacent alors les lignes 7 et 8).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    set Dossier to choose folder "Sélectionner un dossier"
    
    -- si tu veux sélectionner le fichier Image
    --set Fichier_Image to choose file "Sélectionner une image"
    
    
    -- si tu veux prendre le fichier Image.jpg qui est dans le dossier
    set Fichier_Image to ((Dossier as string) & "Image.jpg") as alias
    
    
    tell application "Image Events" to set the clipboard to (read Fichier_Image as JPEG picture)
    tell application "Finder"
    activate
    openinformation window of folder (Dossier as text)
    end tell
    delay 1
    tell application "System Events"
    keystroketab
    keystroke "v" usingcommand down
    end tell
    tell application "Finder" to close front window
    Pour être complet, il faudrait simplement ajouter un test d'existence du fichier Image.jgp dans le dossier (pour éviter une erreur si absent !).
    J'ai constaté une certaine lenteur lorsque le fichier Image était une photo de plusieurs Méga...je ne pense pas que ce soit raisonnable d'avoir de telle images pour des icônes !
    Cordialement
    Merci de ta réponse et pour ton script. Cependant j'ai voulu le tester mais j'ai un message d'erreur lorsque je veux l'enregistrer (je ne le lance même pas).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur de syntaxe
    fin de ligne, etc. prévu mais nom de classe trouvé.
    une idée ?

    merci d'avance

  6. #6
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour,
    Ce n'est pas la première fois que cela se produit depuis que Developpez.com à mis à jour le site (qui est plus beau !).
    En effet lors d'un copier/coller de l'éditeur AS vers les balises codes d'une réponse sur le site, des espaces sautent parfois.
    Il faut que je prenne l'habitude de relire le code ainsi copié/collé, même si il est correct sur mon éditeur AS.

    Je vois 3 espaces qui ont été omis lors du copié/collé :
    ligne 14 : il manque un espace entre "open" et "information"
    ligne 18 : espace manquant entre "keystroke" et "tab"
    ligne 19 : espace manquant entre "using" et "command"

    Pourtant les couleurs des mots confirment bien que le script a été compilé sur mon éditeur AS sans problème...
    Avec ces 3 espaces, cela devrait rentrer dans l'ordre. Désolé.

    Je me suis par ailleurs demandé si tu ne souhaitais pas avoir un dossier principal, avec des 800 dossiers que le script doit traiter. on peut alors faire une boucle sur chaque dossier...Enfin, si tu as besoin...c'est faisable !

    Tiens nous informé !

    Cordialement

    PS : petite astuce :si l'éditeur AS donne une erreur de compilation, il sélectionne en général le mot ou le caractère qui lui pose problème. Pas toujours, ..mais souvent !

  7. #7
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par PBELL Voir le message
    Bonjour,
    Ce n'est pas la première fois que cela se produit depuis que Developpez.com à mis à jour le site (qui est plus beau !).
    En effet lors d'un copier/coller de l'éditeur AS vers les balises codes d'une réponse sur le site, des espaces sautent parfois.
    Il faut que je prenne l'habitude de relire le code ainsi copié/collé, même si il est correct sur mon éditeur AS.

    Je vois 3 espaces qui ont été omis lors du copié/collé :
    ligne 14 : il manque un espace entre "open" et "information"
    ligne 18 : espace manquant entre "keystroke" et "tab"
    ligne 19 : espace manquant entre "using" et "command"

    Pourtant les couleurs des mots confirment bien que le script a été compilé sur mon éditeur AS sans problème...
    Avec ces 3 espaces, cela devrait rentrer dans l'ordre. Désolé.

    Je me suis par ailleurs demandé si tu ne souhaitais pas avoir un dossier principal, avec des 800 dossiers que le script doit traiter. on peut alors faire une boucle sur chaque dossier...Enfin, si tu as besoin...c'est faisable !

    Tiens nous informé !

    Cordialement

    PS : petite astuce :si l'éditeur AS donne une erreur de compilation, il sélectionne en général le mot ou le caractère qui lui pose problème. Pas toujours, ..mais souvent !
    Je reviens vers vous.

    Donc effectivement j'ai corrigé les problèmes d'espaces et ça fonctionne. Si je connaissais ce langage ça m'aurait sauté aux yeux, mais je ne le maitrise pas.

    Je me suis par ailleurs demandé si tu ne souhaitais pas avoir un dossier principal, avec des 800 dossiers que le script doit traiter. on peut alors faire une boucle sur chaque dossier...Enfin, si tu as besoin...c'est faisable !
    Alors oui effectivement tout mes dossiers sont dans un dossier principal. De plus dans ce dossier j'ai deux images qui se nomme respectivement Poster-TitreDuDossier.jpg et Capture-TitreDudossier.jpg.

    Moi ce qui m'interesse c'est de récupérer Poster-TitreDuDossier.jpg pour l'associer à mon dossier.

    donc je le vois comme ça.

    Boucler sur chaque dossier présent dans le dossier principal.
    Récupérer le nom de chaque dossier pour créer les chemins dans lesquels se trouvent les jpg et ainsi les associer aux dossiers.

    Je vais essayé de coder un truc ce soir et je posterai mon code (fonctionnel ou non) pour avec des retours où de l'aide.

    Encore merci pour ta contribution

  8. #8
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir,
    Ce que tu décris est faisable en partant du code déjà en place. la méthode que tu indiques est parfaite.
    Il faut encadrer le code actuel par une boucle sur tout les "folder items" et remplaçant le "image.jpg" par quelque chose comme "Poster-" & name of item & ".jgp" (item prendra la valeur du dossier de la boucle.


    Je ne te donne pas le code intégral car tu aura le plaisir de le mettre au point toi-même et c'est comme cela que l'on apprend le plus vite !
    Si toutefois tu as des questions, n'hésite pas. Cependant je ne pourrai y répondre avant jeudi soir...

    Courage !

Discussions similaires

  1. Comment ajouter une image dans une balise div ??
    Par liv dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/05/2006, 11h48
  2. comment ajouter une image dans mon HTML??
    Par Mickey.jet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/03/2006, 15h12
  3. [SQL Server] Ajouter une image
    Par lepiou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/01/2006, 09h10
  4. [JPanel] ajouter une image
    Par Michel38 dans le forum Agents de placement/Fenêtres
    Réponses: 14
    Dernier message: 27/06/2005, 16h28
  5. [C#] ajouter une image dynamiquement
    Par h_imane dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo