Je viens de passer l'avant-midi à installer, configurer et tester ImageMagick pour m'amuser avec les fonctions graphiques qu'il propose. Et je dois dire que c'est très puissant! Ce que j'ai aimé, c'est qu'on peut non seulement l'appeler par la console, mais aussi à partir de nombreux langages de programmation, dont PHP. Il suffit de faire appel à l'API à l'aide d'une extension PHP comme IMagick (PECL) ou MagickWand. J'ai préféré IMagick à ce dernier puisqu'il possède une notation plus orientée objet.
J'ai découvert une curiosité intéressante : on peut convertir nos photos pour en créer des images du style Polaroid! Je ne sais pas exactement de quelle façon je pourrais m'en servir dans un projet d'entreprise mais bon... C'est cool les Polaroid.
Pour convertir par la console :
convert -caption "Vacances 2008" image-originale.png -gravity center -background black +polaroid image-polaroid.png
Où :
- caption représente le texte à inscrire
- gravity center indique qu'on positionnera le texte au centre
- background : noir pour l'ombrage
- +polaroid pour y ajouter l'effet graphique
// créer un objet IMagick à partir d'une image à transformerUn petit conseil avec les librairies graphiques en général : elles sont toutes très gourmandes en mémoire alors allez-y avec modération pour ne pas surcharger le serveur. Plus tôt, j'ai fait un test de performance entre GD et ImageMagick et la mémoire d'Apache a grimpé momentanément à 1,8 Go...
$image = new IMagick('image-originale.png');
// nécessaire pour transformer l'image en Polaroid
$draw = new IMagickDraw();
// angle de rotation de 5 degrés
$image->polaroidImage($draw, 5);
// afficher immédiatement
header( "Content-Type: image/png" );
echo $image;
// ou enregistrer l'image sur le disque
$image->writeImage('image-polaroid.jpg');
// ménage de la mémoire (un peu comme avec GD)
$draw->clear();
$draw->destroy();
$image->clear();
$image->destroy();