IPB

Bienvenue invité ( Connexion | Inscription )

2 Pages V   1 2 >  
Reply to this topicStart new topic
> Trier des photos avec Applescript, Portrait ou Paysage
Options
MacMame
posté 20 Apr 2018, 10:15
Message #1


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Bonjour,


Je possède un dossier images/ dans lequelle il y à des des sous dossier sur plus de 10 niveaux, dans presque chaque sous dossier, il y à des photos; je souhaiterais développer un applescript qui me scan le dossier image (en recursive donc) et qui affecte par exemple un tag vert pour les photos portrait et un tag rouge pour les photos paysage.

Vous pensez que c'est possible ? tout en gardant bien sur les sous-sous dossier à leurs place.

Merci pour votre aide.
Go to the top of the page
 
+Quote Post
baron
posté 20 Apr 2018, 11:32
Message #2


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 315
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Editus moderatus : coquille corrigée dans le titre (tirer –> trier).


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
yponomeute
posté 20 Apr 2018, 11:35
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 969
Inscrit : 26 Jan 2011
Lieu : Pollachius virens
Membre no 164 083



Pas besoin de faire un script il faut juste utiliser la fonction de recherche du Finder qui permet de sélectionner les fichiers par orientation et restreindre la recherche à ton dossier images.
Ensuite il suffit de sélectionner la totalité des fichiers trouvés pour une orientation et y appliquer un tag couleur.

Pour l'orientation 0 = paysage, 1 = portrait.

[attachment=56892:Capture_...12.34.35.png]


--------------------
MBP 2017 15" avec clavier pourri et touchbar inutile
Go to the top of the page
 
+Quote Post
Zeltron54
posté 20 Apr 2018, 13:23
Message #4


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonjour,
Le solution de "yponomeute" est relativement simple et universelle.

Je te mets un petit applescript qui te permettra de faire ce que tu veux. Tu auras le choix de la méthode !

Il te faudra adapter la ligne : "set extension_a_traiter to {"jpg", "pdf", " png"}" qui liste les extensions que le script devra traiter. j'ai mis jpg, pdf, png et tu pourras ajouter celles qui t'interressent.

Code
tell application "Finder"
    set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à tagger"
    
    my inspecter(cheminsource)
end tell

on inspecter(source)
    tell application "Finder"
        -- traitement des fichiers :
        
        set les_fichiers to files of source
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            tell application "Finder"
                set lefichier to chaque_fichier
                set extension_a_traiter to {"jpg", "pdf", " png"} -- Liste des extensions à traiter
                set nom to name of chaque_fichier
                set extens to document file nom in source --recupere l extension du fichier
                set lextension to name extension of extens
                
                if lextension is in extension_a_traiter then
                    tell application "Image Events"
                        -- close images --This line is not always necessary, but helps keep things clean.
                        set b to open (lefichier as alias)
                        set {wid, hit} to b's dimensions
                        close b
                    end tell
                    if wid < hit then
                        set label index of lefichier to 6
                    else
                        set label index of lefichier to 2
                    end if
                end if
            end tell
        end repeat
        -- traitement des dossiers :
        set les_dossiers to folders of source
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier)
        end repeat
    end tell
end inspecter
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 13:36
Message #5


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Merci yponomeute

Oui , j'ai vue çà sur le tare, en effet, ont peux même choisir le canal alpha, très pratique pour les photos "détouré"

Merci Zeltron54, pour ton script, il pourrait être utile, pour lancer par exemple un droplet photoshop dédié aux photos portrait et paysage...

Mais, la il faut toucher sa bille en apple script. smile.gif

merci
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 13:52
Message #6


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Alors ZELTRON, voici un script que j'avais récupéré d'une experte en apple script smile.gif

Il permettait d’exécuter un droplet (DROPLET-MEGACOOL) qui est défini en 2 version , en version paysage et en version portrait: (selon l'orientation de la photo ont execute un DROPLET adapté)

Code
--PORTRAIT et PAYSAGE DEBUT
on action7(tFiles)
    script ob -- seulement les actions Photoshop
        on PSD_process(this_path)
            set tCollection to "photos-paysage" --****+
            tell application "Adobe Photoshop CC 2015.5"
                open alias this_path showing dialogs never
                tell the current document
                    if width < height then set tCollection to "photos-portrait" -- format Portrait--****+
                    do action "DROPLET-MEGACOOL" from tCollection --****
                    
                    close saving no
                end tell
            end tell
        end PSD_process
    end script
    
    
end action7

-- PORTRAIT et PAYSAGE  FIN


Pense tu que l'ont puisse l'intégrer à ton script ?

L'idée est simple, je défini un dossier "PHOTOS-A-RETOUCHER" , j'y dépose les dossiers, sous dossiers qui comporte des images.

Le script s’exécute donc, dès qu'il détecte les photos.

1/ Selon l'orientation des photos (portrait ou paysage), il envois un droplet photoshop "photos-paysage / DROPLET-MEGACOOL / " et "photos-portrait / DROPLET-MEGACOOL / "

Il sauve les photos sur elle même... car les photos doivent rester à leurs emplacement d'origine...

C'est possible ?

bon dans mes rêves smile.gif
Go to the top of the page
 
+Quote Post
Zeltron54
posté 20 Apr 2018, 14:24
Message #7


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Je connais mal les actions photoshop et je ne possède pas la version cc 2015.

Ajoutes l'extension "psd" à mon script et les fichiers photoshop seront également tagger en vert ou rouge selon leurs orientation.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 14:42
Message #8


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Je me suis mal exprimé, ce n'est pas cela.

En fait une fois que les photos sont trié, je dois opérer des modification via photoshop, c'est à dire que sur les photos paysage, je dois effectuer un travail infographique et sur une photo portrait, idem.

donc en fait, une fois que les photos son tagué, rouge pour les portraits et vert pour les paysages, serais t'il possible de créer une suite....

Faire un apple script qui prend les image tagué rouge et lance un script "portrait", et pour les tag vert, execute un script paysage..

C'est cette logique la que je cherche à faire.... car , je l'est fait manuellement, je classe par tag et j'envois tous ans un droplet mais vue la quantité de photos à traiter, photoshop est sur les rotules...je pense que c'est du fait qu'il y à beacous de sous-dossier et je ne peux pas perdre l'organisation... alors que via un apple script, cela ce passe bien... (c'est plus léger...)

Bon, sinon, pas grave je ferais çà à la main... cool.gif

en fait comment faire pour qu'en fonction de la couleur du tag ont créer une action ?
Go to the top of the page
 
+Quote Post
Zeltron54
posté 20 Apr 2018, 14:56
Message #9


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Ok,
Je dois m'absenter...
je regarde ça à mon retour


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 14:57
Message #10


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Bon j'ai repris mon ancien script, car il est capable de définir l'orientation des photos (if width < height ), donc pas forcement besoin de tager, le hic, c'est que depuis que je tourne sous Elcaptain, ce script ne fonctionne plus... de plus j'ai des doutes sur l'ensemble des syntaxes, je suis nul en apple script


Code
property ajout : {}
property sous_dossiers : {}
property masterFolder : ""
property dossier_a_traiter : ""

on idle
    
    
    
    set dossier_a_traiter to "/Volumes/MONDISK/mesphotos" --****
    tell my rechercheFichiers(dossier_a_traiter) to if it is not "" then my action7(it) -- si des éléments sont trouvés, execute la fonction action7
    

on action7(tFiles)
    script ob -- seulement les actions Photoshop
        on PSD_process(this_path)
            set tCollection to "images-paysage" --****+
            tell application "Adobe Photoshop CC 2015.5"
                open alias this_path showing dialogs never
                tell the current document
                    if width < height then set tCollection to "images-portrait" -- format Portrait--****+
                    do action "MINI-FOND-NEUTRE" from tCollection --****
                    do action "MED" from tCollection --****
                    do action "MAXI" from tCollection --****
                    do action "LST" from tCollection --****
                    close saving no
                end tell
            end tell
        end PSD_process
    end script
    

end action7


Si je fait play dans apple script j'ai:

Erreur de syntaxe:
Code
" end " prévus mais "on" trouvés


Il manque quelques chose ?

Ce message a été modifié par MacMame - 20 Apr 2018, 15:00.
Go to the top of the page
 
+Quote Post
teddy7545
posté 20 Apr 2018, 15:23
Message #11


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Bonjour,

Et si tu ajoutes un end juste avant la ligne "on action7(tFiles)" pour fermer le premier bloc On ?
Ca donne quoi ?

Teddy

Ce message a été modifié par teddy7545 - 20 Apr 2018, 15:26.


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 16:14
Message #12


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Tu a raison TEDDY, je suis nul ! c'est corrigé

Je n'est donc plus de message d'erreur, par contre, j'ai essayé de re-bidouiller mon ancien script, comme ci-dessous, mais rien ne bouge.... je pense que c'est le code en premier qui n'est pas bon (rechercheFichier), le code pour "écouter" le dossier source, il n'est pas adapté.... j'ai essayé d'adapter le code de ZELTRON mais il ne reconnait pas la variable Inspecter.


voici mon code remis à jours:

Je me demande même si il est capable de scanner les dossiers en recursive, car je possède pas mal de sous-sous-sous-dossier.


Code
property ajout : {}
property sous_dossiers : {}
property masterFolder : ""
property dossier_a_traiter : ""

on rechercheFichiers(d) -- recherche fichiers et dossiers
    set tFiles to do shell script "/usr/bin/find " & (quoted form of d) & "  -maxdepth 10 -mindepth 1 \\! -name '.*' \\! -name 'tempo'"
    if tFiles is not "" then return paragraphs of tFiles
    return ""
end rechercheFichiers

on idle
    
    
    
    set dossier_a_traiter to "/Volumes/PHOTOS" --****
    tell my rechercheFichiers(dossier_a_traiter) to if it is not "" then my action7(it) -- si des éléments sont trouvés, execute la fonction action7
    
end idle

on action7(tFiles)
    script ob -- seulement les actions Photoshop
        on PSD_process(this_path)
            set tCollection to "photos-paysage" --****+
            tell application "Adobe Photoshop CC 2015.5"
                open alias this_path showing dialogs never
                tell the current document
                    if width < height then set tCollection to "photos-portrait" -- format Portrait--****+
                    do action "REDIM" from tCollection --****
                    
                    close saving no
                end tell
            end tell
        end PSD_process
    end script
    
    
end action7


Ce message a été modifié par MacMame - 20 Apr 2018, 16:14.
Go to the top of the page
 
+Quote Post
teddy7545
posté 20 Apr 2018, 18:14
Message #13


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Bonsoir

Citation
Je me demande même si il est capable de scanner les dossiers en recursive, car je possède pas mal de sous-sous-sous-dossier.

Oui il est capable mais tu as limité la profondeur de la recherche à 10 niveaux, alors s'il y en a plus dans l'état ils ne seront pas "scanné"
Si tu souhaites qu'il ailles dans tous les sous dossiers, tu peux soit augmenter -maxdepth 10 avec une valeur supérieur 50 ... ou plus....
Ou alors plus simplement enlever cet argument de la commande et il fera automatiquement tous les niveaux.

Ton filtre recherche tous les fichiers ou dossier qui ne commencent pas par un point et qui ne contiennent pas tempo ....
Ce filtre ne renvois donc pas nécessairement des photos.
Es tu sur de ta recherche ...
Si tu as pas de dossier ou de fichier tempo il va donc renvoyer tous les fichiers et dossiers non cachés.

Tu ne peux pas lancer ce script avec le bouton "run" depuis l'éditeur de script.
Aucune fonction ne peut démarrer ainsi dans ce script.

Pour tester avec l'éditeur de script, tu peux ajouter une ligne à la fin
Citation
idle()

De cette façon il devrait démarrer (en forçant idle à démarrer lors du lancement du script).

Enfin pour ne pas risquer de polluer tes fichiers par un traitement inadéquat, je te recommande dans un premier temps de remplacer ta fonction action7 par simplement
Code
on action7(tFiles)
    return tFiles
end action7

De cette façon il ne fera aucun traitement mais te renverra juste la liste des fichiers qu'il considère à traiter.

Ce message a été modifié par teddy7545 - 20 Apr 2018, 19:22.


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 18:33
Message #14


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Ok j'ai pas tout compris mais je vais déjà essayer d'augmenter max deph.

Mais je pense que cela n'y changera rien, en fait ce partie du script ne convient plus, car il y est mention d'un dossier "tempo" qui n'existe plus et qui ne sert rien dans ce cas précis.

Je veux juste tous scanner et dès qu'il trouve une image, la traiter c'est tout...
Go to the top of the page
 
+Quote Post
teddy7545
posté 20 Apr 2018, 19:18
Message #15


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Essai avec ce code, à supposer que tu as bien un disque monté qui s'appelle PHOTOS (sinon à adapter au nom de ton volume)
Ici il ne trouve pas toutes les photos mais seulement le jpg ...
Tu auras donc un résultat seulement si c'est la bonne extension.
Si tu as plusieurs types d'extensions dans tes photos dis moi lesquelles

Code
property ajout : {}
property sous_dossiers : {}
property masterFolder : ""
property dossier_a_traiter : ""

on rechercheFichiers(d) -- recherche fichiers et dossiers
    set tFiles to do shell script "/usr/bin/find " & (quoted form of d) & " \\! -name '.*' -name '*.jpg'    "
    if tFiles is not "" then return paragraphs of tFiles
    return "Aucun fichier trouvé"
end rechercheFichiers

on idle
    
    set dossier_a_traiter to "/Volumes/PHOTOS" --****
    tell my rechercheFichiers(dossier_a_traiter) to if it is not "" then my action7(it) -- si des éléments sont trouvés, execute la fonction action7
    
end idle

on action7(tFiles)
    return tFiles -- pas de traitement mais juste la liste des fichiers à traiter
end action7

idle {} -- uniquement en test pour que le script se lance depuis l'éditeur.


Ce message a été modifié par teddy7545 - 20 Apr 2018, 21:33.


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 20:16
Message #16


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



et donc ce code je le met ou ?

car c'est le code qui trie les photos portrait / paysage et lance le droplet adéquat:


Code
on action7(tFiles)
    script ob -- seulement les actions Photoshop
        on PSD_process(this_path)
            set tCollection to "photos-paysage" --****+
            tell application "Adobe Photoshop CC 2015.5"
                open alias this_path showing dialogs never
                tell the current document
                    if width < height then set tCollection to "photos-portrait" -- format Portrait--****+
                    do action "REDIM" from tCollection --****
                    
                    close saving no
                end tell
            end tell
        end PSD_process
    end script
    
    
end action7
Go to the top of the page
 
+Quote Post
Zeltron54
posté 20 Apr 2018, 20:23
Message #17


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonsoir,

Je vois que tu as trouvé de l'aide avec "teddy7545"

Quelques explications sur mon script te permettra de l'adapter à tes besoins

le script te demande de choisir le dossier à traiter, il prend en compte la totalité des sous dossiers.

il regarde si l'extension du fichier trouvé est dans la liste défini dans cette ligne :"set extension_a_traiter to {"jpg", "pdf", " png"} -- Liste des extensions à traiter" tu peux y mettre les extensions qui t'intéressent notamment "psd".
si l'extension est dans la liste, il récupère les dimensions de l'image avec ces lignes :

tell application "Image Events"
set b to open (lefichier as alias)
set {wid, hit} to b's dimensions
close b
end tel

puis défini si c'est portrait ou paysage. avec cette ligne : " if wid < hit"

si portrait il exécute la ligne : "set label index of lefichier to 6" qui met le label vert
sinon il exécute le ligne : " "set label index of lefichier to 2" qui met le label rouge

Il te suffit donc de remplacer ces ligne par l'action photoshop qui doit être exécuter dans chaque cas

Tu parlais de la variable inspecter: c'est la variable du nom de la routine (qui fait le traitement) qui est appelée après avoir choisi le dossier. Appel de la routine avec "my inspecter" et le début de routine avec "on inspecter"


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 20:54
Message #18


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Ok merci mais je suis pas doué dans ce langage, j'ai donc fait ceci:

Mais çà donne rien... rien ne ce passe, ni message d'erreur, rien...
wink.gif

Code
property ajout : {}
property sous_dossiers : {}
property masterFolder : ""
property dossier_a_traiter : ""

on rechercheFichiers(d) -- recherche fichiers et dossiers
    set tFiles to do shell script "/usr/bin/find " & (quoted form of d) & " \\! -name '.*' -name '*.jpg'    "
    if tFiles is not "" then return paragraphs of tFiles
    return "Aucun fichier trouvé"
end rechercheFichiers

on idle
    
    set dossier_a_traiter to "/Volumes/PHOTOS" --****
    tell my rechercheFichiers(dossier_a_traiter) to if it is not "" then my action7(it) -- si des éléments sont trouvés, execute la fonction action7
    
end idle



on action7(tFiles)
    script ob -- seulement les actions Photoshop
        on PSD_process(this_path)
            set tCollection to "photos-paysage" --****+
            tell application "Adobe Photoshop CC 2015.5"
                open alias this_path showing dialogs never
                tell the current document
                    if width < height then set tCollection to "photos-portrait" -- format Portrait--****+
                    do action "REDIM" from tCollection --****
                    
                    close saving no
                end tell
            end tell
        end PSD_process
    end script
    
    
end action7


idle {} -- uniquement en test pour que le script se lance depuis l'éditeur.


Ce message a été modifié par MacMame - 20 Apr 2018, 20:55.
Go to the top of the page
 
+Quote Post
teddy7545
posté 20 Apr 2018, 21:01
Message #19


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Pour comprendre ton problème essai de décomposer ton problème.
Pour le moment il s'agit de comprendre si ton script trouve bien une liste de fichier.
Et quand cette partie fonctionnera (chez moi ça fonctionne) on pourra passer à la seconde partie avec action7 dans photoshop

As tu essayé le script du message 15 sans rien changer ?
Ou le colles tu ? dans l'éditeur de script Applescript ?
As tu obtenu un résultat ?
As tu effectivement un Volume (un disque dur ou une clé) qui se nomme PHOTO ??
Quelles extensions ont tes photos ?

Ce message a été modifié par teddy7545 - 20 Apr 2018, 21:12.


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 21:17
Message #20


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Alors oui j'ai exécuté dans applescript le script de ton message 15, mais j'ai cette erreur:

En faisant play dans l'éditeur applescript, j'ai:
Code
Erreur de syntaxe
fin de ligne prévus mais jeton inconnu trouvé.

Mon dossier est bien monté, c'est ok de ce coté la.

Mes fichiers sont JPG et PNG, c'est tout.
Go to the top of the page
 
+Quote Post
teddy7545
posté 20 Apr 2018, 21:21
Message #21


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Dans la ligne return tFiles. enlève juste le point en fin de ligne


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
MacMame
posté 20 Apr 2018, 21:37
Message #22


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Ok, je n'est plus de message d'erreur mais j'ai rien .... rien ne s'affiche, rien ne se passe.

Go to the top of the page
 
+Quote Post
Zeltron54
posté 21 Apr 2018, 08:01
Message #23


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Si j'ai bien compris, d'après ton message #18, tu veux donc exécuter dans la version "Adobe Photoshop CC 2015.5" un script "REDIM" qui est dans la collection (suivant le cas) "photos-paysage" ou "photos-portrait"

Donc le script ci-dessous te demande de choisir le dossier à traiter et exécute le script.
Attention le nom de la version photoshop, des collections et des scripts doit être exact y compris majuscules, minuscules.

Code
tell application "Finder"
    set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à traiter"
    
    my inspecter(cheminsource)
end tell

on inspecter(source)
    tell application "Finder"
        -- traitement des fichiers :
        
        set les_fichiers to files of source
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            tell application "Finder"
                set lefichier to chaque_fichier
                set extension_a_traiter to {"jpg", " png", "psd"} -- Liste des extensions à traiter
                set nom to name of chaque_fichier
                set extens to document file nom in source --recupere l extension du fichier
                set lextension to name extension of extens
                
                if lextension is in extension_a_traiter then
                    tell application "Image Events"
                        set b to open (lefichier as alias)
                        set {wid, hit} to b's dimensions
                        close b
                    end tell
                    set monfichier to lefichier as string
                    if wid < hit then
                        set tCollection to "photos-portrait"
                        tell application "Adobe Photoshop CC 2015.5" -- à corriger avec ta version
                            open file monfichier
                            do action "REDIM" from tCollection -- le script sauvegarde et ferme l'image après traitement
                            close saving no
                        end tell
                    else
                        set tCollection to "photos-paysage"
                        tell application "Adobe Photoshop CC 2015.5" -- à corriger avec ta version
                            open file monfichier
                            do action "REDIM" from tCollection -- le script sauvegarde et ferme l'image après traitement
                            close saving no
                        end tell
                    end if
                end if
            end tell
        end repeat
        -- traitement des dossiers :
        set les_dossiers to folders of source
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier)
        end repeat
    end tell
end inspecter
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell




--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
MacMame
posté 21 Apr 2018, 10:12
Message #24


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Ah super merci ZELTRON !! tongue.gif , t'est un expert, merci aussi à TEDDY pour avoir pris de son temps hier !

Donc ZELTRON, c'est top, donc si je veux automatiser le dossier , donc surveiller le dossier je fait comment ? (pour éviter la boite de dialogue)

j'ai repris mon exemple

Code
set cheminsource to "/Volumes/MONDISK/PHOTOS" --****
    tell my inspecter(cheminsource) to if it is not "" then my action7(it)


Mais action7, n'est plus utile, de plus j'ai
Code
"il es impossible d'obtenir every file of "VOLUME/...."


Question, à la fin du traitement des images, est-ce qu'ont peu copier le dossier sur un autre dossier et envoyer un email ? ce serais top !

UN GRAND MERCI ! rolleyes.gif
Go to the top of the page
 
+Quote Post
Zeltron54
posté 21 Apr 2018, 10:23
Message #25


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



beaucoup de questions !

J'ai pas tout compris sad.gif
Citation
si je veux automatiser le dossier

C'est à dire ?
Citation
donc surveiller le dossier je fait comment ? (pour éviter la boite de dialogue)

si tu peux être plus concret! décrire ce que tu veux que ça fasse !

Action 7 n'est plus utile puisque j'ai mis son contenu dans mon script.

Citation
à la fin du traitement des images, est-ce qu'ont peu copier le dossier sur un autre dossier


Tu veux dupliquer le dossier de départ ? et ou (sur le bureau) ?

Citation
envoyer un email

Pourquoi pas on peut essayer ? il faut les éléments ... on verra pour ajouter ça lorsque tout le reste fonctionnera !


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
MacMame
posté 21 Apr 2018, 11:00
Message #26


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Alors je vais détailler par étape, ce sera plus simple biggrin.gif

ETAPE #1/ Je ne veux pas choisir le dossier source via la boite de dialogue au début, je veux juste définir un dossier dans le script, dès qu'ont y dépose des images, le script ce lance (c'est en fait ce que faisait mon ancien script), plus pratique pas besoins de lancer en fait le script. (dès que je dépose des images, il lance le script, je me rappel même avoir fait un temporisateur, pour attendre la fin des chargements des images....car le script avait tendance à ce lancer avant même la fin du chargement.... mais je ne me rappel plus du code qui fait çà... je vais le retrouver si tu veux...)

ETAPE #2/ Il traite les photos (il sauve sur elle même avec PSD)

ETAPE #3/ A la fin du processus, une fois les images modifié sur elle même, je voudrais copier le contenu du dossier "/Volumes/MONDISK/PHOTOS" (les photos qui ont été traité) dans un autre dossier "/Volumes/MONDISK/PHOTOS-TRAITE", voir mieux, le copier sur un serveur FTP.

ETAPE #4/ Au final dès que le transfert est fait en FTP, envoyer un email...

Voila, ce que je souhaitait faire à la base, mais n'étant que bidouilleur en apple script, j'ai du voir mes prétentions à la baisse.

Merci
Go to the top of the page
 
+Quote Post
Zeltron54
posté 21 Apr 2018, 11:27
Message #27


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Pour l'étape 1 et 2
Il faut donc faire une action de dossier qui déclenche le script
Le script va donc traiter toutes les images déposées dans ce dossier

Etape 3 :
Copier, coller du dossier (PHOTOS) dans dossier (PHOTOS-TRAITE) ou un FTP, puis vider le dossier original (PHOTOS)--> corbeille

Etape 4:
Envoyer un email avec : mail ou outlook ou ??


Week-End oblige je regarde dés demain ou lundi ! cool.gif pour essayer de faire ça !

Mais avant: Est ce que le script tel quel fonctionne chez toi et obtients-tu le résultats attendu dans le dossier ?

Ce message a été modifié par Zeltron54 - 21 Apr 2018, 12:03.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
teddy7545
posté 21 Apr 2018, 11:32
Message #28


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



ETAPE #1/
Pour que ça fonctionne comme tu le souhaites il faut créer une application qui reste ouverte
C'est le rôle du statement d'AppleScript prévu à cette effet : "on idle".
Ce statement ne fonctionne qu'avec les applications dont la case "Rester en arrière plan" a été cochée. -> donc pas dans l'éditeur
La durée entre deux exécutions est fixée par "return xx" ou xx est un nombre entier de seconde(s).
Ce mode de fonctionnement te conviendrait t'il ?
Sinon il faudra utiliser les actions de dossier.

ETAPE #2/
La j'ai pas bien compris ce que tu voulais dire.

ETAPE #3/
Souhaites tu toujours que le traitement s'effectue en récursif dans tous les sous dossiers de /Volumes/MONDISK/PHOTOS?
Copier le répertoire oui c'est possible.
Le copier directement sur un serveur FTP ça doit être également faisable mais faut que je cherche un peu.

ETAPE #4/
Envoyer un email c'est tout à fait réalisable également.


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
MacMame
posté 21 Apr 2018, 16:36
Message #29


Adepte de Macbidouille
*

Groupe : Membres
Messages : 109
Inscrit : 11 Jan 2010
Membre no 148 488



Citation (Zeltron54 @ 21 Apr 2018, 12:27) *
Pour l'étape 1 et 2
Il faut donc faire une action de dossier qui déclenche le script
Le script va donc traiter toutes les images déposées dans ce dossier

Etape 3 :
Copier, coller du dossier (PHOTOS) dans dossier (PHOTOS-TRAITE) ou un FTP, puis vider le dossier original (PHOTOS)--> corbeille

Etape 4:
Envoyer un email avec : mail ou outlook ou ??


Week-End oblige je regarde dés demain ou lundi ! cool.gif pour essayer de faire ça !

Mais avant: Est ce que le script tel quel fonctionne chez toi et obtients-tu le résultats attendu dans le dossier ?


DOSSIER:
- OK pour l'action de dossier (après le script ne doit pas démarrer avant que les photos soit chargé....)
- OUI il faut prévoir un dossier recursive

COPIE DES IMAGES:
OK pour la copie des photos dans (PHOTO-TRAITE) , les photos d'origine, ont peux les garder, juste les déplacer dans un dossier POUBELLE par ex. (comme çà j'ai une sauvegarde)

1/ Oui ton script fonctionne, il faut juste que je réalise les bons droplet PSD, (paysage et portrait)....

2/ Alors ma machine reste toujours allumé, donc pas de problème de ce coté la.

3/ Pour les emails, je sais pas, ont est obligé d'utiliser l'application mail ? sinon, oui j'utilise mail.

Voila. smile.gif
Go to the top of the page
 
+Quote Post
teddy7545
posté 21 Apr 2018, 16:47
Message #30


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Citation
DOSSIER:
- OK pour l'action de dossier (après le script ne doit pas démarrer avant que les photos soit chargé....)
- OUI il faut prévoir un dossier recursive

La il me semble que ca va poser problème.
Les actions de dossier ne répondent que dans le dossier défini mais pas dans ses sous dossiers (je viens de tester)
Comment les photos sont t'elles créées ?
Quel est le mode de classement dans les sous dossiers ?

Je vois quelques solutions possibles (il y en a sans doute beaucoup d'autres)

Soit on place toutes les photos dans le répertoire associé à une action en définissant un nom à la création des fichiers qui peut nous permettre des les déplacer automatiquement après traitement dans le bon sous répertoire.

Soit on utilise plutôt une fonction qui surveille le répertoire et ses sous dossiers à fréquence régulière (idle avec script en tâche de fond)
Pas instantané mais peut être pas gênant que le rafraîchissement ne se fasse que toutes les minutes ou toutes des 10 minutes.



--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post

2 Pages V   1 2 >
Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 29th March 2024 - 00:00