Photo Bordure image sur Mac M1 ?

Alors cela me fait bien des bordures mais du coup avec le pourcentage et non un nombre de pixels selon le rapport H/L j'ai des bordures différentes... hors les images ont toutes le coté leur plus long identique au départ.
 
La dimension du cadre est calculé par un pourcentage de la plus grande dimension de l'image.

Image horizontale de 6000x4000 pixels (6000 en largeur) le cadre fera 6000 x 0,007 soit 42 pixels
Image verticale de 4000x6000 pixels (6000 en hauteur) le cadre fera 6000 x 0,007 soit 42 pixels

Veux-tu changer ces valeurs ? et mettre quoi ?
 
J'ai des couacs selon la taille des fichiers pourtant , même s'ils ont le coté le plus long qui est identique.

originaux.pngbordures.png
 
Il est certain que sur des photos de 1000 pixels cela ne fait qu'une bordure de 7 pixels

Edit: tu peux le voir en regardant le nombre de pixels de la photo avant traitement et après traitement
 
Ce sont trois images verticales pourtant avec la même dimension 1600 px et en sortie la hauteur est différente comme si le script se répliquait .... (voir mes PJ dan le post précédent)
 
Et en plus j'ai des images avec des bordures différentes même si les dimensions externes sont presque proches. Je te met la capture écran des images dont je t'ai mis les données ci-dessus.Capture d’écran 2022-08-23 à 21.33.36.png
 
Pour la 1ere cela paraît normal elle prend 11 pixels soit 1600x0,007
La 3ieme également
Seul la 2ieme à l'air d'avoir un problème elle ne prend que 6 pixels !
 
Alors après quelques tests, les photos 20220813_XPRO6405.jpg et 20220813_XPRO6420.jpg fonctionnent normalement.

Par contre la photo 20220813_XPRO6416.jpg est curieusement vu par le script comme étant horizontale, ce qui produit les erreurs. je regarde pourquoi !
 
Bon voilà le bug est trouvé et corrigé.
le nouveau script

Bloc de code:
on adding folder items to Mon_Dossier after receiving Liste_Fichiers
    
    tell application "Finder"
        
        set Fimage to {"jpg", "jpeg", "png", "tiff", "gif", "bmp", "psd"} -- liste des extensions a traiter dans Fimage avec fonction mdls
        
        -- traitement des fichiers :
        set les_fichiers to files of Mon_Dossier --récupère tous les fichiers du dossier
        repeat with chaque_fichier in les_fichiers -- répète avec chaque fichier du dossier en cour
            -- traitement d'un fichier
            tell application "Finder"
                set nom to name of chaque_fichier --récupère le nom du fichier
                set AppleScript's text item delimiters to {"."} -- defini le separateur
                set lextension to get last text item of nom -- recupère l'extension
                set lefichier to chaque_fichier as string --récupère le chemin du fichier au format chaine de caractères
                
                
                if lextension is in Fimage then -- si fichier video de la liste Fimage
                    
                    set lahauteur to do shell script "mdls -name kMDItemPixelHeight " & quoted form of POSIX path of lefichier --récupère la hauteur pixel format mdls
                    set lalargeur to do shell script "mdls -name kMDItemPixelWidth " & quoted form of POSIX path of lefichier --récupère la largeur pixel format mdls
                    set AppleScript's text item delimiters to {" "} -- defini le separateur
                    set lahauteur to last text item of lahauteur
                    set lalargeur to last text item of lalargeur
                    set lechemin to POSIX path of lefichier
                    set lalargeur to lalargeur as number
                    set lahauteur to lahauteur as number
                    
                    if lalargeur > lahauteur then
                        set cadre to lalargeur * 0.007
                        set lacommande to "sips -Z " & lalargeur & " -p " & (lahauteur + cadre) & " " & (lalargeur + cadre) & " --padColor 000000 -i " & quoted form of lechemin
                    else
                        set cadre to lahauteur * 0.007
                        set lacommande to "sips -Z " & lahauteur & " -p " & (lahauteur + cadre) & " " & (lalargeur + cadre) & " --padColor 000000 -i " & quoted form of lechemin
                    end if
                    do shell script lacommande
                    
                end if
                
            end tell
        end repeat -- fichier suivant
    end tell
end adding folder items to
 
Cela fonctionne youpi !...

Question: si je veux faire une double bordure noire/puis en blanc est-ce que je peux dans les actions de dossier mettre deux scripts l'un blanc, l'autre noir cela va s'appliquer dans l'orde de la liste de la fenêtre ou ça ne fonctionne pas ainsi ? Ca va pas tourner en boucle ?
 
Je n'avais jamais tester, je viens d'essayer à priori seule la dernière action sera faite !

Normal, la première se fait, puis la deuxième mais comme la photo n'est pas encore enregistrée (elle ne le sera qu'a la sortie du script)cette deuxième action recouvre la première.
J'ai même essayer en mettant une plus grande, une seule est visible à la fin.

Je ne vois donc que créer une deuxième dossier avec l'autre couleur, et passée la photo dans les 2 dossiers un après l'autre.

Autre solution modifier le script et ajouter une deuxième action à la suite de la première...

Exemple ce script met une bordure noire et une bordure rouge

Bloc de code:
on adding folder items to Mon_Dossier after receiving Liste_Fichiers
    
    tell application "Finder"
        
        set Fimage to {"jpg", "jpeg", "png", "tiff", "gif", "bmp", "psd"} -- liste des extensions a traiter dans Fimage avec fonction mdls
        
        -- traitement des fichiers :
        set les_fichiers to files of Mon_Dossier --récupère tous les fichiers du dossier
        repeat with chaque_fichier in les_fichiers -- répète avec chaque fichier du dossier en cour
            -- traitement d'un fichier
            tell application "Finder"
                set nom to name of chaque_fichier --récupère le nom du fichier
                set AppleScript's text item delimiters to {"."} -- defini le separateur
                set lextension to get last text item of nom -- recupère l'extension
                set lefichier to chaque_fichier as string --récupère le chemin du fichier au format chaine de caractères
                
                
                if lextension is in Fimage then -- si fichier video de la liste Fimage
                    
                    set lahauteur to do shell script "mdls -name kMDItemPixelHeight " & quoted form of POSIX path of lefichier --récupère la hauteur pixel format mdls
                    set lalargeur to do shell script "mdls -name kMDItemPixelWidth " & quoted form of POSIX path of lefichier --récupère la largeur pixel format mdls
                    set AppleScript's text item delimiters to {" "} -- defini le separateur
                    set lahauteur to last text item of lahauteur
                    set lalargeur to last text item of lalargeur
                    set lechemin to POSIX path of lefichier
                    set lalargeur to lalargeur as number
                    set lahauteur to lahauteur as number
                    
                    if lalargeur > lahauteur then
                        set cadre to lalargeur * 0.007
                        set lacommande to "sips -Z " & lalargeur & " -p " & (lahauteur + cadre) & " " & (lalargeur + cadre) & " --padColor 000000 -i " & quoted form of lechemin
                    else
                        set cadre to lahauteur * 0.007
                        set lacommande to "sips -Z " & lahauteur & " -p " & (lahauteur + cadre) & " " & (lalargeur + cadre) & " --padColor 000000 -i " & quoted form of lechemin
                    end if
                    do shell script lacommande
                    
                    if lalargeur > lahauteur then
                        set cadre to lalargeur * 0.007
                        set lacommande to "sips -Z " & lalargeur & " -p " & (lahauteur + cadre) & " " & (lalargeur + cadre) & " --padColor FF0000 -i " & quoted form of lechemin
                    else
                        set cadre to lahauteur * 0.007
                        set lacommande to "sips -Z " & lahauteur & " -p " & (lahauteur + cadre) & " " & (lalargeur + cadre) & " --padColor FF0000 -i " & quoted form of lechemin
                    end if
                    do shell script lacommande
                    
                    
                end if
                
            end tell
        end repeat -- fichier suivant
    end tell
end adding folder items to
 
Dernière édition:
Oui j'ai testé aussi et j'ai conclu pareil... Bon mais c'est TOP le liseret se fait bien avec le bon pourcentage quelque soit la taille de l'image. Je ferais donc si besoin d'une double bordure un second dossier

Du coup c'est super ... je vais pouvoir faire ca en sortie du logiciel qu'il dépose les fichiers dans le dossier et hop ! Très grand merci à toi Tu es un AS :up::up::up:

1661288328150.png
 
Content pour toi !
Si tu as un problème n'hésite pas à demander !
:up:
:coucou:
 
Salut,

Le script fonctionne bien par contre j'ai une perte de "qualité" sur les fichiers... un fichier de 2,3Mo par exemple ne fait plus que 500 Ko... Aurais-tu une explication ou un moyen que je n'ai pas cette "perte" surement une compression, ou une ré-écriture par un algorithme. rien de catastrophique je te rassure.
 
Bonsoir,
J'avais laissé les valeurs par défaut de la commande "SIPS" .
Je regarde pour modifier...
 
Dernière édition:
Bon voilà un script à tester
J'ai mis la valeur de qualité du JPEG a 85, tu pourras la modifier (sur les 2 lignes vertical et horizontal)

dis si OK.

Edit: je viens de me rendre compte qu'il recommence à y avoir des problèmes avec certaine photo verticale, pas toutes ! je me pencherai sur le problème dès que j'aurai un peu de temps ...

Bloc de code:
on adding folder items to Mon_Dossier after receiving Liste_Fichiers
   
    tell application "Finder"
       
        set Fimage to {"jpg", "jpeg", "png", "tiff", "gif", "bmp", "psd"} -- liste des extensions a traiter dans Fimage avec fonction mdls
       
        -- traitement des fichiers :
        set les_fichiers to files of Mon_Dossier --récupère tous les fichiers du dossier
        repeat with chaque_fichier in les_fichiers -- répète avec chaque fichier du dossier en cour
            -- traitement d'un fichier
            tell application "Finder"
                set nom to name of chaque_fichier --récupère le nom du fichier
                set AppleScript's text item delimiters to {"."} -- defini le separateur
                set lextension to get last text item of nom -- recupère l'extension
                set lefichier to chaque_fichier as string --récupère le chemin du fichier au format chaine de caractères
               
               
                if lextension is in Fimage then -- si fichier video de la liste Fimage
                   
                    set lahauteur to do shell script "mdls -name kMDItemPixelHeight " & quoted form of POSIX path of lefichier --récupère la hauteur pixel format mdls
                    set lalargeur to do shell script "mdls -name kMDItemPixelWidth " & quoted form of POSIX path of lefichier --récupère la largeur pixel format mdls
                    set AppleScript's text item delimiters to {" "} -- defini le separateur
                    set lahauteur to last text item of lahauteur
                    set lalargeur to last text item of lalargeur
                    set lechemin to POSIX path of lefichier
                    set lalargeur to lalargeur as number
                    set lahauteur to lahauteur as number
                   
                   
                    if lalargeur > lahauteur then
                        set cadre to lalargeur * 0.007
                        set lacommande to "sips -Z " & lalargeur & " -p " & (lahauteur + cadre) & " " & (lalargeur + cadre) & " -s format jpeg -s formatOptions 85 --padColor 000000 -i " & quoted form of lechemin
                    else
                        set cadre to lahauteur * 0.007
                        set lacommande to "sips -Z " & lahauteur & " -p " & (lalargeur + cadre) & " " & (lahauteur + cadre) & " -s format jpeg -s formatOptions 85 --padColor 000000 -i " & quoted form of lechemin
                    end if
                    do shell script lacommande
                   
                end if
               
            end tell
        end repeat -- fichier suivant
    end tell
end adding folder items to
 
Dernière édition:
Salut,

Ok, fais cela quand tu as du temps, rien d'urgent. Merci encore.

A bientôt

Pierre