Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/11/2021, à 17:00

ptilou007

[aide][rech] Imagemagick photographe libre ?

Bonjour,

Je viens profiter du savoir de l'auditoire :
Je me suis inspiré de cette page :
Script pour faire une planche contact

Mooi étant même pour la distribution en tat de guerre, j'ai écrit çà (j'ai imagemagick en portable):

!/bin/bash
#
# make_contactsheet_bw_v1.0.sh
# @jmdigne - https://lephotographelibre.wordpress.com
# Planche contact NB des photos d'un répertoire passé en paramètre
#
# History
# 2017_06_25 v1.0. - création
#
# Paramètres
# $1 = Répertoire de travail de départ où les images ont été déchargées
#
# Infos
# $1/BW = Répertoire temporaires des images converties NB
# contactsheet.JPG = Nom de la planche contact
 
#
# REM ***********************************************************************
#
echo "*** Planche Contact Noir&Blanc / BW Contact Sheet ***"
# Usage
display_usage() {
    echo " "
    echo "Au moins 1 Argument"
    echo "Répertoire de travail de départ où ont été déchargées les images"
    echo " "
    echo "\nUsage:\n$0 [arguments] \n"
    }
 
# T
    if [  $# -le 0 ]
    then
        display_usage
        exit 1
    fi
 
# 00 - Lancement
 
echo "* Repertoire de travail = $1"
 
# 1- Création des répertoires de travail temporaires
mkdir $1/BW
 
# 2 - Conversion en Greyscale --> copie des images grayscale dans dossier $1/BW
 
cd $1
# Nomalisation des nom de fichiers fichier .jpg en .JPG
rename -v 's/\.jpg\.*$/.JPG/' *.jpg*
for i in *.JPG; do ./magick convert -type Grayscale "$i" "$(echo $1/BW/$i)" ; done
 
# 3 - Traitement
cd $1/BW
 
SIZE=500
ROWS=6
FONTSIZE=32
# -auto-orient  : Supprimet ou Ajouter tag pour avoir une rotation automatique
# des vignettes
 
./ magick montage -verbose -label '%f' -font Times -pointsize ${FONTSIZE} -tile 7x5  \
        -background '#000000' -fill 'gray' -define jpeg:size=${SIZE}x${SIZE} \
        -title $(echo $1) -auto-orient \
      ./magick  -geometry ${SIZE}x${SIZE}+2+2   *.JPG    contactsheet.JPG
 
cp  contactsheet.jpg .. 
# 4 - Ménage
cd $1/BW
rm *.JPG
cd ..
rmdir $1/BW
cd $PWD
 
# Fin
exit 0

J'ai comme erreur çà :

[philippe@fedora noir&blanc-resize]$ ./planche-contact-photographe-libre.sh /home/philippe/Images/noir\&blanc-resize/
./planche-contact-photographe-libre.sh: ligne 1: !/bin/bash: Aucun fichier ou dossier de ce type
*** Planche Contact Noir&Blanc / BW Contact Sheet ***
* Repertoire de travail = /home/philippe/Images/noir&blanc-resize/
./planche-contact-photographe-libre.sh: ligne 60: ./ : est un dossier
cp: impossible d'évaluer 'contactsheet.jpg': Aucun fichier ou dossier de ce type
[philippe@fedora noir&blanc-resize]$ ./planche-contact-photographe-libre.sh /home/philippe/Images/noir\&blanc-resize/
./planche-contact-photographe-libre.sh: ligne 1: !/bin/bash: Aucun fichier ou dossier de ce type
*** Planche Contact Noir&Blanc / BW Contact Sheet ***
* Repertoire de travail = /home/philippe/Images/noir&blanc-resize/
./planche-contact-photographe-libre.sh: ligne 60: ./ : est un dossier
cp: impossible d'évaluer 'contactsheet.jpg': Aucun fichier ou dossier de ce type
[philippe@fedora noir&blanc-resize]$ 

Si quelqu'un peut me corriger mon erreur que je ne trouve pas merci !
Le script est il récursif dans l'arboresance ?

--
ptilou

Hors ligne

#2 Le 07/11/2021, à 17:11

Amiralgaby

Re : [aide][rech] Imagemagick photographe libre ?

Bonjour,

Il manque un dièse au début de la ligne le shebang, shellcheck me retourne ce type de message

In bin/a.sh line 1:
!/bin/bash
^-- SC1104: Use #!, not just !, for the shebang.

Il y a une page à propos des scripts : tutoriel/script_shell

Une astuce ! tu peux utiliser shellcheck pour vérifier l'intégrité de tes scripts.

Dernière modification par Amiralgaby (Le 07/11/2021, à 17:15)


Vive la communauté du Libre !!!

Hors ligne

#3 Le 07/11/2021, à 17:15

abelthorne

Re : [aide][rech] Imagemagick photographe libre ?

Déjà, il y a une petite erreur dans la déclaration de l'interpréteur (ligne 1), il faut mettre un commentaire (#) au début :

#!/bin/bash

Ensuite, ligne 60, tu as (peut-être) une espace en trop à supprimer :

./magick montage -verbose -label '%f' -font Times -pointsize ${FONTSIZE} -tile 7x5  \

Avec ton script, tu passes une première commande qui est un dossier (./) puis une commande magick. Or, tu veux a priori lancer la commande magick qui est dans le dossier courant (enfin, je suppose ?), donc il faut supprimer l'espace entre les deux. Cela dit, si magick est une commande d'ImageMagick (je ne connais que convert, je ne suis pas sûr qu'il y ait une commande magick), tu ne la lancerais pas depuis le dossier courant, auquel cas je ne comprends pas bien ce que fait ce ./ au début de la ligne 60...

D'autre part, je vois que tu as plusieurs lignes dans lesquelles il y a des double espaces (31, 63, 65...) et même si ça ne pose pas de problème à l'interpréteur (je n'en suis pas vraiment sûr), ce n'est pas très rigoureux.

Enfin, je vois qu'il y a plusieurs commandes qui traitent des fichiers en .JPG. Tu es sûr que les fichiers en question finissent par .JPG en majuscules ? Sur Linux, la casse (différence majuscules/minuscules) est importante et des fichiers en .JPG ce n'est pas la même chose que des fichiers en .jpg, donc pas sûr que ton script traite tout ce que tu veux.

EDIT : il y a d'autres petits problèmes à voir mais il faudrait déjà essayer de comprendre ce que tu essaies de faire avec la commande à la ligne 60 (qui s'étend jusqu'à la 63).

Dernière modification par abelthorne (Le 07/11/2021, à 17:25)

Hors ligne

#4 Le 07/11/2021, à 18:45

ptilou007

Re : [aide][rech] Imagemagick photographe libre ?

Bonsoir,

J'ai un dossier et sous dossier avec des images divers, je veux que les images soient incorporées à une seul grande image en plusieur petites images, une idée, un modéle :
Planche contact

J'ai verifié imagemagick est installé, j'ai donc modifiér le script de la sorte :

#!/bin/bash
#
# make_contactsheet_bw_v1.0.sh
# @jmdigne - https://lephotographelibre.wordpress.com
# Planche contact NB des photos d'un répertoire passé en paramètre
#
# History
# 2017_06_25 v1.0. - création
#
# Paramètres
# $1 = Répertoire de travail de départ où les images ont été déchargées
#
# Infos
# $1/BW = Répertoire temporaires des images converties NB
# contactsheet.JPG = Nom de la planche contact
 
#
# REM ***********************************************************************
#
echo "*** Planche Contact Noir&Blanc / BW Contact Sheet ***"
# Usage
display_usage() {
    echo " "
    echo "Au moins 1 Argument"
    echo "Répertoire de travail de départ où ont été déchargées les images"
    echo " "
    echo "\nUsage:\n$0 [arguments] \n"
    }
 
# T
    if [  $# -le 0 ]
    then
        display_usage
        exit 1
    fi
 
# 00 - Lancement
 
echo "* Repertoire de travail = $1"
 
# 1- Création des répertoires de travail temporaires
mkdir $1/BW
 
# 2 - Conversion en Greyscale --> copie des images grayscale dans dossier $1/BW
 
cd $1
# Nomalisation des nom de fichiers fichier .jpg en .JPG
rename -v 's/\.jpg\.*$/.JPG/' *.jpg*
for i in *.JPG; do convert -colorspace gray "$i" "$(echo $1/BW/$i)" ; done
 
# 3 - Traitement
cd $1/BW
 
SIZE=500
ROWS=6
FONTSIZE=32
# -auto-orient  : Supprimet ou Ajouter tag pour avoir une rotation automatique
# des vignettes
 
  montage -verbose -label '%f' -pointsize ${FONTSIZE} -tile 7x5  \
       -background '#000000' -fill 'gray' -define jpg:size=${SIZE}x${SIZE} \
       -title $(echo $1) -auto-orient \
      -geometry ${SIZE}x${SIZE}+2+2   *.JPG    contactsheet.jpg
 
cp  contactsheet.jpg .. 
# 4 - Ménage
cd $1/BW
#rm *.JPG
cd ..
#rmdir $1/BW
#cd $PWD
 
# Fin
exit 0

Quand je l'execute je n'ai pas de planche contact et la sortie donne çà :

[philippe@fedora noir&blanc-resize]$ vi planche-contact-photographe-libre.sh 
[philippe@fedora noir&blanc-resize]$ ./planche-contact-photographe-libre.sh /home/philippe/Images/noir\&blanc-resize/
*** Planche Contact Noir&Blanc / BW Contact Sheet ***
* Repertoire de travail = /home/philippe/Images/noir&blanc-resize/
mkdir: impossible de créer le répertoire « /home/philippe/Images/noir&blanc-resize//BW »: Le fichier existe
contactsheet.JPG JPEG 598x460 598x460+0+0 8-bit Gray 256c 19811B 0.000u 0:00.006
contactsheet.jpg JPEG 3528x2544 16-bit GrayscaleAlpha Gray 50685B 0.440u 0:00.365
[philippe@fedora noir&blanc-resize]$ 

J'ai pas se que je souhaite ?

Si quelqu'un peut me dire comment résoudre le probleme, d'autre part les image nez sont pas converti dans le dossier, alors qu'a la main un convert fonctionne sur un fichier avec un fichier test.jpg en sortie ?
Et dans le dossier BW, il colle une fois l'image contactsheet.jpg, or l'image et la perforation de pellicule, et donc mes images ne sont pas tranformé et mise sur une page et toutes les 24 images sur une planche créer une nouvelle planche, donc je cherche quelqu'un me donne un script fonctionnelle !

Merci

--
ptilou

Dernière modification par ptilou007 (Le 07/11/2021, à 18:53)

Hors ligne