Photo Bordure image sur Mac M1 ?

Merci a tous les 2 pour votre posts et cet échange tres constructif.
j'étais a la recherche de la meme chose, et en suivant vos echanges et malgré le fait que je debute sous MacOS j'ai pu mettre facilement en place le script .

encore merci

Yann
 
Merci pour le retour !

J'espère que tu as trouvé comment changer la largeur et la couleur de la bordure...
 
Merci pour le retour !

J'espère que tu as trouvé comment changer la largeur et la couleur de la bordure...
oui oui pas de probleme, étant informaticien, et ancien développeur, je n'ai pas eu trop de mal de comprendre le scripts et modifier les parametres pour l'adapter au mieux a mes besoin.

encore merci pour ton travail au top et tes explications . et en plus je viens de vois que l'on etait lorrain tout les deux, vu ton pseudo j'aurai du m'en douter !
 
Dernière édition par un modérateur:
@zeltron54 (ou un autre membre calé en dev.) si tu passes par là, peux-tu amélioré le script que tu m'as conçu. J'aimerais que au lieu qu'il me fasse 1 seul cadre autour de mon image il y en ait 3. disons 1 noir avec une largeur définie, et ensuite un second cadre d'une autre couleur avec une autre taille et pour finir un troisième cadre. Actuellement je bidouille et je déplace le fichier dans un autre dossier qui applique la même action avec des valeurs différentes. Est-il possible que cela soit fait dans le même script ? Je mets une image en exemple


sinon j'aimerais aussi faire comme l'image dont je mets le lien ci-dessous mais avec un cadre noir (de même dimension tout autour) avant le cadre blanc qui a des dimensions identique sur 3 coté, mais sur la base est différent. Mais là je pense qu'il faut revoir l'ensemble du script.



Donc si tu passes par là et que tu peux m'aider... j'ai tenté de modère le script mais comme je n'y connais rien, je ne sais pas quel ligne je pourrais reproduire et ou la mettre pour que cela fonctionne.

Pierre
 
Bonjour,

Pour ta demande de 3 cadres fais des essais avec ce script.
Il te demande de sélectionner le fichier à traiter, puis le nombre de cadres à mettre, avec chacun :
la valeur pour l'épaisseur du cadre en % de la taille de l'image, chiffre à saisir avec une virgule (pas un point, exemple 0,007)
La valeur de la couleur du cadre au format hexa "RRVVBB" (exemple FFFFFF pour blanc, OOOOOO pour noir, FF0000 pour rouge)

Pour avoir un coté d'épaisseur différente , je vais regarder si c'est possible.

Bloc de code:
--on adding folder items to Mon_Dossier after receiving Liste_Fichiers

tell application "Finder"
    set chaque_fichier to choose file with prompt "Sélectionnez le dossier"
    set Fimage to {"jpg", "jpeg", "png", "tiff", "gif", "bmp", "psd"} -- liste des extensions a traiter dans Fimage avec fonction mdls
    
    set nbcadre to display dialog "Entrer le nombre de cadre à créer :" default answer "1"
    set nbcadre to text returned of result
    set listcadre to {}
    repeat nbcadre times
        set epaisseur to display dialog "Entrer la valeur pour l'épaisseur de cadre 1 :" default answer "0,005"
        set epaisseur to text returned of result
        set listcadre to listcadre & epaisseur
        set couleur to display dialog "Entrer la couleur du cadre 1 au format RRVVBB :" default answer "000000"
        set couleur to text returned of result
        set listcadre to listcadre & couleur
    end repeat
    
    -- traitement des fichiers :
    --repeat with chaque_fichier in liste_fichiers -- répète avec chaque fichier du dossier en cour
    -- traitement d'un fichier
    tell application "Finder"
        
        set lapos to 1
        repeat with i from 1 to nbcadre
            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 lechemin to POSIX path of lefichier
                
                set lahauteur to do shell script "/usr/local/bin/exiftool -imageHeight " & quoted form of POSIX path of lefichier
                set lalargeur to do shell script "/usr/local/bin/exiftool -imageWidth " & quoted form of POSIX path of lefichier
                set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
                set AppleScript's text item delimiters to {": "}
                set lalargeur to last text item of lalargeur
                set lahauteur to last text item of lahauteur
                set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
                
                set largeur to lalargeur as number
                set hauteur to lahauteur as number
                
                --recup valeur lecadre et couleur
                set lecadre to item lapos of listcadre
                set couleur to item (lapos + 1) of listcadre
                
                if largeur > hauteur then
                    set cadre to round (largeur * lecadre)
                else
                    set cadre to round (hauteur * lecadre)
                end if
                
                set Lcadre to (largeur + cadre) as string
                set Vcadre to (hauteur + cadre) as string
                
                
                set lacommande to "sips -p " & Vcadre & " " & Lcadre & "  -s formatOptions 100 --padColor " & couleur & " -i " & quoted form of lechemin
                
                do shell script lacommande
                
                
            end if
            set lapos to lapos + 2
        end repeat
        
    end tell
    --end repeat -- fichier suivant
end tell
--end adding folder items to
 
  • J’aime
Réactions: lepetitpiero
@lepetitpiero

J'ai posté un peu vite,
Le texte des demandes de saisies est toujours pour le "cadre 1" mais il prend bien les différents cadres.

Pour la question du cadre avec des épaisseurs différentes, ont peut différentier la largeur et la hauteur, mais pas 1 seul coté...
Je continu mes recherches !

J'attends ta réponse pour le script, si cela te convient je rectifierai le texte et mettre le script dans une action de dossier si tu le souhaites.
 
  • J’aime
Réactions: lepetitpiero
Salut,

pas eu le temps de jeter un oeil dessus... je te tiens au courant dans le week-end, merci encore
 
Bonjour, j'ai testé, cela fonctionne bien, bien entendu ta remarque de cade 1. se vérifie aussi, mais j'ai compris pourquoi dans le script.

J'ai voulu appliqué le script en tant que action de dossier, mais je pense que tu ne l'avais pas écrit à cet effet vu que j'ai une demande de dossier.

Merci d'avance c'est déjà ultra super ce que tu as fais.
 
Dernière édition:
Alors il y a un petit couac... quand je sélectionne le dossier , en fait il me l'ouvre et veut qe je sélectionne un fichier en fait et pas un dossier de traitement. de plus si 2 fichiers a traiter cela ne fonctionne que sur un fichier ( celui sélectionner dans le dossier)
 
Bonjour,

Tout ce que tu dis est normal, j'avais fais le script juste pour tester si cela te convenait en matière de saisie des valeurs, donc maintenant je vais modifier le script pour que tu puisses le déclarer en action de dossier (comme l'ancien script).

Je prépare et je te met le nouveau script dans quelques minutes ...
 
Oui et pour le fichier dossier j'ai compris en lisant le début du script ( j'essais de comprendre) "file" : fichier et "folder" sera pour dossier. et pour l'histoire du cadre en bas plus large il doit falloir créer une ligne qui dit qu'un bordure se crée en bas ( aucune idée de comment cela peut secrir en apple script ( bas c'est "bottom" mais peut-on appliquer cela a une image aucune idee
 
Voila le script action de dossier.

Par contre pour la ligne du bas cela ne fonctionne pas comme ça !
On défini uniquement la nouvelle hauteur d'image et la couleur de remplissage, on ne peut pas agir sur la répartition en haut ou en bas !
Je continu de chercher si je trouve une solution je viendrai te le dire .


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
        
        set nbcadre to display dialog "Entrer le nombre de cadre à créer :" default answer "1"
        set nbcadre to text returned of result
        set listcadre to {}
        set i to 1
        repeat nbcadre times
            set epaisseur to display dialog "Entrer la valeur pour l'épaisseur de cadre " & i & " :" default answer "0,005"
            set epaisseur to text returned of result
            set listcadre to listcadre & epaisseur
            set couleur to display dialog "Entrer la couleur du cadre " & i & " au format RRVVBB :" default answer "000000"
            set couleur to text returned of result
            set listcadre to listcadre & couleur
            set i to i + 1
        end repeat
        
        -- traitement des fichiers :
        repeat with chaque_fichier in Liste_Fichiers -- répète avec chaque fichier du dossier en cour
            -- traitement d'un fichier
            tell application "Finder"
                
                set lapos to 1
                repeat with i from 1 to nbcadre
                    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 lechemin to POSIX path of lefichier
                        
                        set lahauteur to do shell script "/usr/local/bin/exiftool -imageHeight " & quoted form of POSIX path of lefichier
                        set lalargeur to do shell script "/usr/local/bin/exiftool -imageWidth " & quoted form of POSIX path of lefichier
                        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
                        set AppleScript's text item delimiters to {": "}
                        set lalargeur to last text item of lalargeur
                        set lahauteur to last text item of lahauteur
                        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
                        
                        set largeur to lalargeur as number
                        set hauteur to lahauteur as number
                        
                        --recup valeur lecadre et couleur
                        set lecadre to item lapos of listcadre
                        set couleur to item (lapos + 1) of listcadre
                        
                        if largeur > hauteur then
                            set cadre to round (largeur * lecadre)
                        else
                            set cadre to round (hauteur * lecadre)
                        end if
                        
                        set Lcadre to (largeur + cadre) as string
                        set Vcadre to (hauteur + cadre) as string
                        
                        
                        set lacommande to "sips -p " & Vcadre & " " & Lcadre & "  -s formatOptions 100 --padColor " & couleur & " -i " & quoted form of lechemin
                        
                        do shell script lacommande
                        
                        
                    end if
                    set lapos to lapos + 2
                end repeat
                
            end tell
        end repeat -- fichier suivant
    end tell
end adding folder items to
 
  • J’aime
Réactions: lepetitpiero
l'action de dossier de marche pas... quand je dépose des fichiers dedans rien ne se passe... si je clic sur le dossier, je vois bien la roue crantée tournée puis plus rien. Je n'ai aucune demande de sélection de cadre comme dans le script d'avant.

EDIT: si ça fonctionne....
 
Tu as bien déclaré le script comme action de ton dossier voir le message #44
 
Oui désolé, aucune idée pourquoi il ne voulait pas au départ... ca fonctionne. Milles merci
 
Ok !
je continu mes recherches pour ligne du bas, mais sans trop d’ espoir …
 
Peux-tu me donner les valeurs des bordures que tu veux obtenir pour les cotés, le haut et le bas (en pourcentage de la taille de l'image comme renseigné dans le script).

L'idée est de faire des bordures pour le haut et le bas de la taille de celle du bas (la plus grande), puis de passer par aperçu de sélectionner toute l'image, de déplacer la sélection vers le bas de manière à avoir la bonne taille pour la bordure du haut, puis de recadrer et enregistrer.

Tu veux faire ce job sur toutes les images traitées dans l'action de dossier, ou seulement sur quelques images choisies mises dans un dossier différent ?

Edit: Sinon il y a graphicConverter qui permet de faire des marges à ta convenance pour chaque coté .
 
Dernière édition:
Je ne sais pas si cela peut aider, mais PhotoScape (sur AppStore), en version gratuite et ouvert dans Photos permet une grande variété de cadres avec les réglages pour chacun d'eux.
Mais ne permet pas le traitement par lots…
Exemple partiel de la liste de cadres :

1722692412746.jpeg