Bonjour à tous,

Ben oui : j'ai quitté l'école il y a longtemps...

Soit une image carrée de 500 x 500 pixels, barrée par une bande en diagonale de gauche à droite dont les coordonnées (x, y) sur l'image sont :

x=25 , y=0
x=55, y=0
x=500, y=470
x=500, y=440

Avec GD et imagettftext(), je souhaite écrire un texte dans cette diagonale.
Et le centrer.

J'ai crée une petite fonction qui centre Y :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
function centrage_texte_y($heightIm, $taille_T, $font_TTF, $texte)
{
$size = imagettfbbox($taille_T,-45,$font_TTF,$texte); 
$dy = abs($size[5]-$size[1]);
$espY = $heightIm - $dy;
$y = ($espY / 2);
return $y;
} 
 
//que j'appelle comme ceci :
$texte = "Mon texte exemple en diagonale";
$y_centre = centrage_texte_y($height, 16, "fonts/Verdana.ttf", $texte);
//écriture du texte dans l'image
imagettftext($img, 16, -45, $X, $y_centre, $rouge, "fonts/Verdana.ttf", $texte);
Et ça fonctionne, la valeur de Y est ok. La phrase, grâce à l'angle de valeur -45 s'affiche bien en diagonale....mais $X manque. Comment le calculer ?

Par rapport à y que je connais ?
Avec le tableau $size que retourne imagettfbbox() ?
Avec un subtil mélange des deux ?

Ben moi je sèche totalement !