Afin d’adapter la résolution de vos photos à votre affichage de site ou pour l’envoi par mail, voici un petit script qui vous permettra de modifier la taille d’une image et d’y insérer un copyright.

Au préalable, vous devez installer imagemagick

# apt install imagemagick

Pour l’utiliser, vous devez vous rendre dans le répertoire à modifier.
donc en console :

$ cd le_répertoire_à_modifier

Créer le script

<script>
#!/bin/sh
rm -rf photos_site
mkdir -p photos_site
taille="800x600"
nom="Le pingouin des @lpes"
police="/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"
tpolice=6
texte="Copyright @ $nom"
topolice=$(( $tpolice * 3))
bl=$(( $tpolice / 3))
for i in *.jpg *.png *.gif *.JPG *.JPEG *.PNG *.GIF
do
	convert -verbose -size $taille xc:none -gravity SouthEast \
	-pointsize $topolice -font @$police -stroke black -strokewidth $tpolice \
	-draw "text 5,5 '$texte'" -channel RGBA -blur 0x$bl -stroke none \
	-fill white -draw "text 5,5 '$texte'" $i -geometry $taille! \
	-compose dst-over -composite photos_site/$i
done
</script>

Lancer le script (que vous avec copié dans un répertoire scripts en lui donnant les droits d’exécution) :

$ chmod +x copyright.sh).
$ ~/scripts/copyright.sh

Dans ce script, vous pouvez modifier :

  • le nom du copyright (nom)
  • le format de l’image (jpg, png …)
  • la taille de l’image (800x600)
  • le nom du répertoire créé (photo_site)
  • la police d’écriture utilisée et sa taille (DejaVuSans 6).

Vous devez respecter les proportions pour qu’elle ne soit pas déformée (par exemple 1024x768 -> 800x600)
Le lancement du script va créer un nouveau répertoire en y mettant les images modifiées.

Le résultat

2ème solution

La photo ne sera pas modifiée ; elle sera superposée avec une autre image.
Cela se réalise grâce au PHP :
Je crée un fichier copyright.php et j’y insère :

<?php
header ("Content-type: image/png"); // L'image que l'on va créer est un png
$nom = $_GET['nom']; 
// On charge d'abord les images
$source = imagecreatefrompng("copyright_logo.png"); // Le logo est la source
$destination = imagecreatefromjpeg($nom);   // La photo est la destination

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

// On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
$destination_x = $largeur_destination - $largeur_source;
$destination_y =  $hauteur_destination - $hauteur_source;

// On met le logo (source) dans l'image de destination (la photo)
imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);

// On affiche l'image de destination qui a été fusionnée avec le logo
imagepng($destination);
?>

Pour afficher une image avec un copyright, il suffit de lancer :

![img](url_copyright.php?nom=url_image)
Un exemple pour le jpg

Avec un png
Pour le png, il faudra créer un autre script PHP (copyright_png.php par exemple) en remplaçant jpg par png.