Comment marquer vos photos publiées sur Internet? Il y a de nombreuses façons de le faire via des logiciels de traitement d’images. J’avais besoin d’un système automatique simple : je pose mes photos dans un répertoire (In), je lance un script, les photos marquées sont créées dans un répertoire de sortie (Out) avec le même nom. Je n’ai pas à dimensionner quoi que ce soit pour chaque photo.
En pratique, nous avons un répertoire « In » pour les photos à traiter, un répertoire « Out » pour les photos traitées, le Logo à incruster et le script PHP. Il faut, en plus de PHP, que ImageMagick soit installé. L’incrustation est légère à 5%, il est possible de modifier cette valeur pour obtenir une incrustation plus ou moins marquée.
<?php $dirIn = "In"; $dirOut = "Out"; $logo = "Logo.png"; $tmpFile = "tmp.png"; if ($dh = opendir($dirIn)) { while (($file = readdir($dh)) !== false) { $fileName = $dirIn."/".$file; if (!is_file($fileName)) { continue; } echo "File : $file : type : " . filetype($fileName) . "\n"; list($width, $height, $type, $attr) = getimagesize($fileName); // Resize logo $cmd = "convert $logo -geometry '$width"."x"."$height' $tmpFile"; exec($cmd); echo "> $cmd\n"; // Put the watermark $cmd = "composite -watermark 5% -gravity center $tmpFile $fileName $dirOut/$file"; exec($cmd); echo "> $cmd\n"; } closedir($dh); } @unlink($tmpFile); |
Je n’ai pas essayé ce script sous Windows, mais ça ne devrait pas poser de problème.