Création Bordures

Un peu perdu …

  • Où place-t-on le fichier add-border.txt ? Dans quel dossier ?
  • Il est indiqué “par défaut le script doit être dans le dossier de travail” Est-ce que le script doit être recopié dans chaque dossier contenant des images ?

Tu places le add-border.txt et le add-border.sh (que tu rends exécutable) dans le dossier usercommands qui se trouve dans ~/.config/ART/ (S’il n’y est pas, tu le crées)

Si tu ne changes pas le chemin, la photo se mettra dans ce dossier (ce qui n’est pas très pratique !)

Bonjour Philippe, voici un tuto général sur les Commandes utilisateurs, par Carafife :

Il faut modifier les 2 commandes, ART-cli et convert.
Pour ART-cli, l’export en TIFF se fait en remplaçant l’option -j (export jpeg) par -tz (export en TIFF 16 bits, compressé par zip).
Côté convert, je dois regarder ça car je ne maîtrise pas du tout. Surtout que pour une utilisation plus pratique du script, j’ai essayé de trouver une commande qui permet de traiter des lots de fichiers : si vous sélectionnez plusieurs images dans le navigateur et appliquez la commande utilisateur, chaque image sera convertie et aura une bordure ajoutée. Mais le traitement par lots n’est pas chose aisée, et la doc Imagemagick par toujours facile à suivre.

1 « J'aime »

Voici une nouvelle version du script qui fait un export en TIF 16 bits, puis ajoute la bordure sur ce fichier TIF. La sélection multiple fonctionne. Pensez à adapter le chemin de destination :

#!/bin/bash

d=$(mktemp -d)

ART-cli --progress -f -s -Y -t -tz -b16 -o "$d" -c "$@" 2>"$d/error" |
zenity --width=500 --progress --auto-close --text="Adding border..."

for i in $d/*.tif; do
	convert "$i" -bordercolor "rgb(0,0,0)" -border 2%x3% -set filename:f "/
DOSSIER/DE/DESTINATION/%t_border.%e" +adjoin "%[filename:f]"
done

rm -rf "$d"
1 « J'aime »

Salut à tous, Alberto a fixé le bug des artéfacts de l’outil rectangulaire (pour celles et ceux qui compilent, c’est dispo depuis 2h).
Finalement, vous avez deux méthodes efficaces pour faire un cadre (voir ci-dessus).

Celle de @sguyader est toutefois beaucoup plus élégante et totalement dédiée à cela.

1 « J'aime »

La méthode par Commandes utilisateurs est plus complexe à mettre en place initialement (besoin d’installer ImageMagick et les fichiers txt/sh dans le bon répertoire), mais a l’avantage ensuite d’être beaucoup plus pratique, et en ajoutant la bordure en pourcentage de la taille de l’image, cette méthode devient plus générique, en permettant de traiter un lot d’images de différentes dimensions en un seul clic !

PS: merci @jllailes pour le report du bug sur bitbucket

1 « J'aime »

Chez moi, ça ne marche pas.

Dans les préférences, dans l’éditeur externe j’ai mis cela :
/home/philippe/.config/ART/usercommands/add-border.sh
j’ai essayé en bout de ligne add-border.txt sans succès non plus.

Dans le dossier usercommands, j’ai déposé add-border.sh et add-border.txt


le contenu de add-border.txt :

[ART UserCommand]

the command label

Label=Add border

the actual command to execute (which we define below)

Command=./add-border.sh


Le contenu de add-border.sh :

#!/bin/bash

d=$(mktemp -d)

ART-cli --progress -f -s -Y -t -tz -b16 -o “$d” -c “$@” 2>“$d/error” |
zenity --width=500 --progress --auto-close --text=“Adding border…”

for i in $d/*.tif; do
convert “$i” -bordercolor “rgb(0,0,0)” -border 2%x3% -set filename:f “/
/home/philippe/Images/%t_border.%e” +adjoin “%[filename:f]”
done

rm -rf “$d”


N’y connaissant rien en script ou développement, j’ai dû faire des erreurs …

Une aide ?

As tu bien installé ImageMagick ?

Le script add-border.sh est bien exécutable ?

Bonjour Philippe, je ne comprends pas cette histoire d’éditeur externe. Les commandes utilisateur 'ont rien à voir avec l’envoi de l’image dans un éditeur externe.
Pour lancer la commande utilisateur, il faut faire un clic droit sur la vignette d’une ou plusieurs images dans l’explorateur d’ART, puis on voit le menu “Commandes utilisateur” apparaître si tout est bien paramétré.

Je ne comprends pas ce que tu as fait là… ?
Si tu as bien le dossier usercommands dans ~/.config/ART/ , tu accèdes au usercommands (commande utilisateur) avec un clic droit sur ta photo dans le navigateur de fichier. Et tu cliques ensuite sur add-border.

Voici une nouvelle commande, dérivée de la première, pour ajouter une ombre portée sous le cadre. C’est une simple modification de la commande convert d’Imagemagick. Voici le script :

#!/bin/bash

d=$(mktemp -d)

ART-cli --progress -f -s -Y -j -o "$d" -c "$@" 2>"$d/error" |
zenity --width=500 --progress --auto-close --text="Adding border..."

for i in $d/*.jpg; do
	convert "$i" -strip -bordercolor white -border 3%x2%  \( +clone -background black -shadow 80x30+30+20 \) +swap -background white -layers merge +repage -set filename:f "/DOSSIER/DE/DESTINATION/%t_border.%e" +adjoin "%[filename:f]"
done

rm -rf "$d"

Cette fois j’ai configuré la commande pour exporter un jpeg, et non en tif, car c’est plutôt pour de l’affichage sur une galerie web ou autre.

Voici un rendu :

1 « J'aime »
for i in $d/*.jpg; do
	convert "$i" -strip -bordercolor white -border 3%x2%  \( +clone -background black -shadow 80x30+30+20 \) +swap -background white -layers merge +repage -set filename:f "/DOSSIER/DE/DESTINATION/%t_border.%e" +adjoin "%[filename:f]"
done

Je crois que c'est là que j'ai un problème je pense. J'ai imagemagick sur l'ordinateur. Pouvez vous me faire un exemple de répertoire dans la commande "convert" ci-dessus pour voir si c'est ça le problème.
En faisant un clic droit sur l'image puis commande utilisateur et add-border, chez moi il ne se passe strictement rien ...

Ca peut être n’importe quel répertoire. Par exemple si les photos d’origine sont dans /home/philippe/Photos, il suffit de mettre ce chemin-là dans la commande :

#!/bin/bash

d=$(mktemp -d)

ART-cli --progress -f -s -Y -j -o "$d" -c "$@" 2>"$d/error" |
zenity --width=500 --progress --auto-close --text="Adding border..."

for i in $d/*.jpg; do
convert "$i" -strip -bordercolor white -border 3%x2%  \( +clone -background black -shadow 80x30+30+20 \) +swap -background white -layers merge +repage -set filename:f "/home/philippe/Photos/%t_border.%e" +adjoin "%[filename:f]"
done

rm -rf "$d"

Les photos avec bordure seront ainsi enregistrées dans le même répertoire que les photos originales, et vu que le script ajoute le suffixe _border au nom du fichier, il n’y a pas de risque d’écraser l’image originale.

1 « J'aime »

Tu peux ensuite renommer chaque script pour chaque fonction : bordure noire, blanche, en jpg, en tiff, avec ombre, etc… auquel tu associes autant de fichier add-border-fonction.txt (pointant sur chaque script) correspondant, ce qui te permettra d’avoir toutes les options que tu souhaites dans la commande utilisateur.

Non, ça ne marche pas chez moi …
Je vous ai fait une courte vidéo de mon ordinateur pour vous montrer ce que j’ai fait :
https://drive.google.com/file/d/1d8wNiyOyNS3Q8k4-rEn3OGFJLq6Rilh8/view?usp=sharing
Si vous voyez ce qui ne va pas …

J’ai l’impression que tu as un espace en trop dans ta command=./add-border.sh de ton add-border.txt . après le border.
vérifie si c’est le cas ton script n’est pas appelé.

vérifie également que Art.cli est bien dans ton Path. (en tapant echo $PATH dans un terminal)

philippe@deletree:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/sbin:/usr/sbin:/sbin
philippe@deletree:~$

Non, pas d’espace de trop. C’est bon de ce côté-là.

Chez moi Art-cli est dans mon PATH… Peut-être que ton problème vient de là ? rajoute le…

si tu es sous bash, ouvre le fichier ./bashrc (nano bashrc)

et rajoute la ligne `PATH=$PATH" :$HOME/(ton chemin vers)/programs/art/ART.cli"

EDIT: il semble que Art soit dans $HOME/philippe/ART/ART.cli chez toi… ???

enregistre ton fichier
puis recharge le shell: source ~/.bashrc

et retape echo $PATH pour voir si ART.cli est bien dans le path.

et reteste ta commande utilisateur