création de site gard herault  EBW  Tarifs  Articles  Logiciels  Contact

 PHP et Imagick: texte multilignes inséré dans une image

Tout d'abord, préparer l'image qui va recevoir le texte

$image=new Imagick();
$image->newImage(410, 200, new ImagickPixel('transparent'));

Préparer les paramètres d'écriture du texte:

$draw=new ImagickDraw();
$draw->setFont(dirname(__FILE__)."/path/to/my/font.ttf");
$draw->setFontSize( 30 );
$draw->setFillColor("#e71760");

Choisir l'alignement:

$draw->setGravity ( imagick::GRAVITY_NORTHEAST );   //or GRAVITY_CENTER or GRAVITY_NORTHWEST

Procéder à l'insertion du texte:

$image->annotateImage($draw, 0, 0, 0, wordwrap("Mon texte a insérer sur plusieurs lignes",27,"\n"));

Note importante: la fonction annotateImage ne va pas fait les sauts à la ligne adéquats en fonction de la largeur de l'image, c'est pourquoi il est nécessaire d'utiliser la fonction PHP wordwrap qui va insérer les sauts de ligne en comptant des lignes de 27 caractères.

Le choix de 27 caractères a été fait empiriquement, il correspond à la largeur d'une ligne de la police utilisée à la taille choisie (setFontSize de 30).

Enfin, raboter l'image:

$image->trimImage(0);

Et voilà!!!


 

 

 

 

Création de websites dans le gard et l'hérault. Copyright 2007 - 2017
Autres sites: RAPPEL MAIL - Mymarseille - Location vacances La Grande Motte - Gestion de taches hiérarchisée - Le portail du covoiturage - Physique-Chimie au collège Louis Germain (34) - Herault: cabinet d'avocat à Montpellier - Espace pédagogique du collège Louis Germain (34) - plus de liens...