![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]() ![]()
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.. ![]() 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. ![]() |
|
|
![]() |
![]() ![]()
Message
#2
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 109 Inscrit : 11 Jan 2010 Membre no 148 488 ![]() |
Voici le code complet que j'utilise, à quel endroit e dois ajouter le code que tu viens de me fournir ?
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-PORTRAITS" 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 set dossier_a_traiter to "/Volumes/Rack-Pro/CANON/★AUTOMATOR/collection/PHOTOS-PAYSAGES" tell my rechercheFichiers(dossier_a_traiter) to if it is not "" then my action8(it) -- si des éléments sont trouvés, execute la fonction action8 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 DEBUT on action7(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 "MINI" from "collection-portrait" do action "MED" from "collection-portrait" do action "MAXI" from "collection-portrait" do action "PRM" from "collection-portrait" 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 FIN -- collection PAYSAGE DEBUT on action8(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 "MINI" from "collection-paysage" do action "MED" from "collection-paysage" do action "MAXI" from "collection-paysage" do action "PRM" from "collection-paysage" 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 action8 -- collection 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 |
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 13:42 |