IPB

Bienvenue invité ( Connexion | Inscription )

> Trier des photos Portraits et Paysages ?, Possible avec Apple Script ??
Options
MacMame
posté 7 Jul 2011, 16:55
Message #1


Adepte de Macbidouille
*

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



Bonjour,


J'ai un dossier avec plus de 5000 photos à trier, je dois extraire les photos au format portrait dans un répertoire "portrait" et les photos "paysage" dans un répertoire "paysage", bref est-ce possible ?, il faudrait par exemple que le script puisse calculer si la hauteur et inférieur à la largeur de l'image = Paysage et si la hauteur et supérieur à la largeur = portrait.. cool.gif

Ah moin qu'il soit possible de faire cela sous Photoshop, mais rien n'y fait avec l'option adapter l'image....

Merci pour votre aide. rolleyes.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
MacMame
posté 18 Jul 2011, 14:01
Message #2


Adepte de Macbidouille
*

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



Salut !


Houla ! je suis largué sad.gif l'action8 de mon ancien fichier je le colle ou ? dans celui que tu m'a remis ?



sinon si j’exécute en double cliquant dessus (enregitrer en application) et que je met une image dans "PHOTOS" rien ne ce passe.

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

on idle
    
    
    -- collection Debut
    
    set dossier_a_traiter to "/Volumes/Rack-Pro/CANON/★AUTOMATOR/collection/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
    
-- cette ligne qui finit par /PHOTOS-PAYSAGES" + les deux lignes suivantes ont été supprimées --****-

    set dossier_a_traiter to "/Volumes/Rack-Pro/CANON/★AUTOMATOR/collection/PIC"
    tell my rechercheFichiers(dossier_a_traiter) to if it is not "" then my action9(it) -- si des éléments sont trouvés, execute la fonction action9
    
    -- collection Fin
    
    
    return 30 -- 20 secondes avant la prochaine execution du idle
end idle

on quit
    continue quit
end quit


-- collection PORTRAIT et PAYSAGE DEBUT
on action7(tFiles)
    script ob -- seulement les actions Photoshop
        on PSD_process(this_path)
            set tCollection to "collection-paysage" --****+
            tell application "Adobe Photoshop CS5"
                open alias this_path showing dialogs never
                tell the current document
                    if width < height then set tCollection to "collection-portrait" -- format Portrait--****+
                    do action "MINI" from tCollection--****
                    do action "MED" from tCollection--****
                    do action "MAXI" from tCollection--****
                    do action "PRM" from tCollection--****
                    close saving no
                end tell
            end tell
        end PSD_process
    end script
    
    set ajout to {"_mini", "_med", "_maxi", "_prm"} -- selon l'ordre des dossiers (dans la  ligne suivante)
    set sous_dossiers to {"MINI", "MED", "MAXI", "PRM"}
    set masterFolder to "/Users/monmac/Pictures/RESULTAT" -- le dossier parent des sous dossier "MINI", "MED", "MAXI", "PRM"
    set dossiersDimages to {}
    repeat with f in tFiles -- boucle qui ne traite que les fichiers
        set this_path to (POSIX file f) as string
        if not my isDownloading(this_path as alias) then -- le fichier ou dossier ne se télécharge pas
            if ((alias this_path) as string) ends with ":" then -- c'est un dossier
                set end of dossiersDimages to contents of f -- on met le chemin du dossier dans une liste
            else
                ob's PSD_process(this_path) -- traite le fichier dans Photoshop
                my deplace(f) -- déplace le fichier dans le sous dossier "tempo"
            end if
        end if
    end repeat
    my renomme()
    set d to ""
    my deplace_images_creer("/Users/monmac/Pictures/RESULTAT/★ REGROUPEMENT/collection_recup", d) --<-- mettre ici le chemin du dossier de destination
    
    repeat with d in dossiersDimages --  boucle qui traite les dossiers d'images
        set tFiles to do shell script "/usr/bin/find " & (quoted form of d) & "  -maxdepth 1 -type f  \\! -name '.*'"
        if tFiles is not "" then
            repeat with f in (get paragraphs of tFiles)
                ob's PSD_process((POSIX file f) as string) -- traite le fichier dans Photoshop
            end repeat
            my deplace(d) -- déplace le dossier dans le sous dossier "tempo"
            my renomme()
            my deplace_images_creer("/Users/monmac/Pictures/RESULTAT/★ REGROUPEMENT/collection_recup", d) --<-- mettre ici le chemin du dossier de destination
        end if
    end repeat
end action7

-- collection PORTRAIT et PAYSAGE  FIN
Go to the top of the page
 
+Quote Post
Guest_EricaL**_*
posté 18 Jul 2011, 14:31
Message #3





Guests






Bonjour,

Citation (MacMame @ 18 Jul 2011, 09:01) *
Houla ! je suis largué sad.gif l'action8 de mon ancien fichier je le colle ou ? dans celui que tu m'a remis ?

Il fallait le supprimer

Citation (MacMame @ 18 Jul 2011, 09:01) *
sinon si j’exécute en double cliquant dessus (enregitrer en application) et que je met une image dans "PHOTOS" rien ne ce passe.

Vérifie que l'action de dossier du dossier "PHOTOS" est bien activé.

Voici le script au complet.
Code
property ajout : {}
property sous_dossiers : {}
property masterFolder : ""
property dossier_a_traiter : ""

on idle
    
    
    -- collection Debut
    
    set dossier_a_traiter to "/Volumes/Rack-Pro/CANON/★AUTOMATOR/collection/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
    
-- cette ligne qui finit par /PHOTOS-PAYSAGES" + les deux lignes suivantes ont été supprimées --****-

    set dossier_a_traiter to "/Volumes/Rack-Pro/CANON/★AUTOMATOR/collection/PIC"
    tell my rechercheFichiers(dossier_a_traiter) to if it is not "" then my action9(it) -- si des éléments sont trouvés, execute la fonction action9
    
    -- collection Fin
    
    
    return 30 -- 20 secondes avant la prochaine execution du idle
end idle

on quit
    continue quit
end quit


-- collection PORTRAIT et PAYSAGE DEBUT
on action7(tFiles)
    script ob -- seulement les actions Photoshop
        on PSD_process(this_path)
            set tCollection to "collection-paysage" --****+
            tell application "Adobe Photoshop CS5"
                open alias this_path showing dialogs never
                tell the current document
                    if width < height then set tCollection to "collection-portrait" -- format Portrait--****+
                    do action "MINI" from tCollection--****
                    do action "MED" from tCollection--****
                    do action "MAXI" from tCollection--****
                    do action "PRM" from tCollection--****
                    close saving no
                end tell
            end tell
        end PSD_process
    end script
    
    set ajout to {"_mini", "_med", "_maxi", "_prm"} -- selon l'ordre des dossiers (dans la  ligne suivante)
    set sous_dossiers to {"MINI", "MED", "MAXI", "PRM"}
    set masterFolder to "/Users/monmac/Pictures/RESULTAT" -- le dossier parent des sous dossier "MINI", "MED", "MAXI", "PRM"
    set dossiersDimages to {}
    repeat with f in tFiles -- boucle qui ne traite que les fichiers
        set this_path to (POSIX file f) as string
        if not my isDownloading(this_path as alias) then -- le fichier ou dossier ne se télécharge pas
            if ((alias this_path) as string) ends with ":" then -- c'est un dossier
                set end of dossiersDimages to contents of f -- on met le chemin du dossier dans une liste
            else
                ob's PSD_process(this_path) -- traite le fichier dans Photoshop
                my deplace(f) -- déplace le fichier dans le sous dossier "tempo"
            end if
        end if
    end repeat
    my renomme()
    set d to ""
    my deplace_images_creer("/Users/monmac/Pictures/RESULTAT/★ REGROUPEMENT/collection_recup", d) --<-- mettre ici le chemin du dossier de destination
    
    repeat with d in dossiersDimages --  boucle qui traite les dossiers d'images
        set tFiles to do shell script "/usr/bin/find " & (quoted form of d) & "  -maxdepth 1 -type f  \\! -name '.*'"
        if tFiles is not "" then
            repeat with f in (get paragraphs of tFiles)
                ob's PSD_process((POSIX file f) as string) -- traite le fichier dans Photoshop
            end repeat
            my deplace(d) -- déplace le dossier dans le sous dossier "tempo"
            my renomme()
            my deplace_images_creer("/Users/monmac/Pictures/RESULTAT/★ REGROUPEMENT/collection_recup", d) --<-- mettre ici le chemin du dossier de destination
        end if
    end repeat
end action7

-- collection PORTRAIT et PAYSAGE  FIN

-- collection PIC DEBUT
on action9(tFiles)
    script ob -- seulement les actions Photoshop
        on PSD_process(this_path)
            tell application "Adobe Photoshop CS5"
                open alias this_path showing dialogs never
                tell the current document
                    do action "PIC" from "collection-pic-picmax"
                    do action "PICMAX" from "collection-pic-picmax"
                    close saving no
                end tell
            end tell
        end PSD_process
    end script
    
    set ajout to {"_pic", "_picmax"} -- selon l'ordre des dossiers (dans la  ligne suivante)
    set sous_dossiers to {"PIC", "PICMAX"}
    set masterFolder to "/Users/monmac/Pictures/RESULTAT" -- le dossier parent des sous dossier "PIC", "PICMAX"
    set dossiersDimages to {}
    repeat with f in tFiles -- boucle qui ne traite que les fichiers
        set this_path to (POSIX file f) as string
        if not my isDownloading(this_path as alias) then -- le fichier ou dossier ne se télécharge pas
            if ((alias this_path) as string) ends with ":" then -- c'est un dossier
                set end of dossiersDimages to contents of f -- on met le chemin du dossier dans une liste
            else
                ob's PSD_process(this_path) -- traite le fichier dans Photoshop
                my deplace(f) -- déplace le fichier dans le sous dossier "tempo"
            end if
        end if
    end repeat
    my renomme()
    set d to ""
    my deplace_images_creer("/Users/monmac/Pictures/RESULTAT/★ REGROUPEMENT/collection_recup", d) --<-- mettre ici le chemin du dossier de destination
    
    repeat with d in dossiersDimages --  boucle qui traite les dossiers d'images
        set tFiles to do shell script "/usr/bin/find " & (quoted form of d) & "  -maxdepth 1 -type f  \\! -name '.*'"
        if tFiles is not "" then
            repeat with f in (get paragraphs of tFiles)
                ob's PSD_process((POSIX file f) as string) -- traite le fichier dans Photoshop
            end repeat
            my deplace(d) -- déplace le dossier dans le sous dossier "tempo"
            my renomme()
            my deplace_images_creer("/Users/monmac/Pictures/RESULTAT/★ REGROUPEMENT/collection_recup", d) --<-- mettre ici le chemin du dossier de destination
        end if
    end repeat
end action9

-- collection_rouge PIC FIN



on renomme()
    set n to 1
    repeat with ceDossier in sous_dossiers --  chaque nom de dossier de la liste sous_dossiers
        set t_folder to quoted form of (masterFolder & "/" & ceDossier)
        do shell script "ajout=" & (quoted form of (item n of ajout)) & "
cd " & t_folder & " &&  /usr/bin/find . -type f -maxdepth 1 \\! -name  \"*$ajout.*\" \\! -name  \"*$ajout\" \\! -name '.*' -print0  | while read -d $'\\0' f;
do
  nom=${f%.*}; ext=${f##*.};
  if [ \"$nom\" = \"\" ]; then  /bin/mv -f  \"$f\" \"$f$ajout\"; else  /bin/mv -f  \"$f\" \"$nom$ajout.$ext\"; fi
done"
        
        set n to n + 1
    end repeat
end renomme

on isDownloading(f)
    set s to size of (info for f)
    delay 6
    return (size of (info for f)) < s
end isDownloading

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

on deplace(f) -- déplace le (fichier original ou le dossier contenant les fichiers originaux) dans le sous dossier "tempo"
    -- si un élément du meme nom existe deja dans le dossier de destination, un nombre sera ajouté au nom
    set destPath to quoted form of (dossier_a_traiter & "/tempo")
    do shell script "dest=" & destPath & ";f=" & (quoted form of f) & "; name=${f##*/}; i=\"\"
if [[ \"$name\" != *.* ]]; then  ext=\"\"; base=\"$name\"; else base=${name%.*}; ext=.${name##*.};fi
while [ -e \"$dest/$base$i$ext\" ]; do
((i++)); done;
/bin/mv  \"$f\"  \"$dest/$base$i$ext\""
end deplace

on deplace_images_creer(d, dossier) -- déplace les images dans le  dossier spécifié
    -- si un élément du meme nom existe deja dans le dossier spécifié, un nombre sera ajouté au nom
    if dossier is "" then -- ce sont des images qui ont été déposées
        set destPath to quoted form of d
        set thisFolder to (POSIX file d) as string
    else -- c'est dossier qui a été déposée
        set r to do shell script "d=" & (quoted form of dossier) & "; nom=${d##*/}; i=\"\"
cd " & (quoted form of d) & ";while [ -e \"$nom$i\" ];do
  ((i++))
done
/bin/mkdir  \"$nom$i\"; echo \"$nom$i\"" -- création du dossier
        set destPath to quoted form of (d & "/" & r)
        set thisFolder to (POSIX file (d & "/" & r)) as string
    end if
    
    repeat with ceDossier in sous_dossiers --  chaque nom de dossier de la liste sous_dossiers
        set t_folder to quoted form of (masterFolder & "/" & ceDossier)
        do shell script "dest=" & destPath & "
/usr/bin/find " & t_folder & " -type f -maxdepth 1 \\! -name '.*' -print0  | while read -d $'\\0' f; do
name=${f##*/};
if [ -e \"$dest/$name\" ];then
    i=1; if [[ \"$name\" != *.* ]]; then  ext=\"\"; base=\"$name\"; else base=${name%.*}; ext=.${name##*.};fi
    while [ -e \"$dest/$base$i$ext\" ];do
      ((i++))
    done
    name=\"$base$i$ext\"
fi
/bin/mv  \"$f\"  \"$dest/$name\"
done"
    end repeat
    
    tell application "Finder" to try --  étiquette verte
        set label index of document files of folder thisFolder whose name extension is in {"gif", "png"} and (name contains "_mini." or name contains "_pic.") and it's label index is not 6 to 6
    end try
end deplace_images_creer


Ce message a été modifié par EricaL** - 18 Jul 2011, 14:34.
Go to the top of the page
 
+Quote Post

Les messages de ce sujet
- MacMame   Trier des photos Portraits et Paysages ?   7 Jul 2011, 16:55
- - EricaL**   Bonjour, Si je comprends bien, tu voudrais dépla...   7 Jul 2011, 20:12
- - MacMame   Merci EricaL, Oui c'est çà !!...   7 Jul 2011, 21:39
|- - EricaL**   Bonjour, Citation (MacMame @ 7 Jul 2011, 16...   8 Jul 2011, 01:32
|- - MacMame   Citation (EricaL** @ 8 Jul 2011, 01:32) L...   8 Jul 2011, 12:20
|- - EricaL**   Bonjour, Citation (MacMame @ 8 Jul 2011, 07...   8 Jul 2011, 15:33
- - MacMame   AAHH Ah ok oui voila, mais je pense te donner le c...   12 Jul 2011, 15:31
- - MacMame   Voici le code complet que j'utilise, à quel e...   12 Jul 2011, 20:53
- - EricaL**   Bonjour, OK, je ne suis pas sur. Selon moi, tu v...   13 Jul 2011, 03:36
- - MacMame   Salut ! Houla ! je suis largué l...   18 Jul 2011, 14:01
|- - EricaL**   Bonjour, Citation (MacMame @ 18 Jul 2011, 09...   18 Jul 2011, 14:31
- - MacMame   Oui mais, il n'y à pas besoin d'action de...   18 Jul 2011, 15:08
|- - EricaL**   Citation (MacMame @ 18 Jul 2011, 10:08) O...   18 Jul 2011, 15:26
- - MacMame   ah ok merci , j'ai repris ton code au complet ...   18 Jul 2011, 15:24
|- - EricaL**   Bonjour, Citation (MacMame @ 18 Jul 2011, 10...   18 Jul 2011, 20:12
- - MacMame   WWAHOO !!, en plus tu es multitâche ...   18 Jul 2011, 15:58
- - MacMame   Salut ErikaL, J'avais réussi à faire ce s...   30 Sep 2011, 23:15
|- - EricaL**   Citation (MacMame @ 30 Sep 2011, 18:15) J...   1 Oct 2011, 01:10
- - MacMame   Ouf ! c'est bon j'ai trouvé l'err...   1 Oct 2011, 01:28
- - MacMame   Bonjour à tous et toute ! alors, je sais que...   21 Aug 2020, 14:54
- - PBell   Bonjour, Effectivement, depuis 9 ans des chemins d...   22 Aug 2020, 08:05


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 : 18th July 2025 - 07:04