- <?php
-
- function sq($x){ return $x * $x; }
- function convrad (){ return pi() / 180; }
- function convdeg (){ return 180 / pi(); }
- /**
- * @param $im l'image
- * @param $color la couleur
- * @param $font la police
- * @param $size la taille
- * @param $r le rayon du cercle
- * @param $phrase la phrase a afficher
- * @param $cx le centre du cercle (abscisse)
- * @param $cy le centre du cercle (ordonnee)
- * @param $phy le decalage
- */
- function circleWrite($im, $color, $font, $size, $r, $phrase, $cx, $cy, $phy = 180){
- // combien de degres entre deux lettres ?
- $tab = imagettfbbox($size , 0 , $font , 'X' );
- $lenX = $tab[4] - $tab[0];
- $lenY = $tab[5] - $tab[1];
- $len = sqrt(sq($lenX) + sq($lenY));
- $step = atan($len / $r) * convdeg();
- $nbrLettres = strlen($phrase);
- for ($i=0;$i<$nbrLettres;$i++){
- $angle = $phy + $i * $step;
- $angleRAD = $angle * convrad();
- $x = $cx + cos($angleRAD)*$r;
- $y = $cy + sin($angleRAD)*$r;
- imagettftext($im, $size, 270 - $angle , $x, $y, $color, $font, $phrase[$i]);
- }
- }
-
-
- $dx = 200;
- $dy = 200;
- $im = imagecreate($dx,$dy);
- $white = imagecolorallocate($im, 255,255,255);
- $black = imagecolorallocate($im, 0,0,0);
- $font = '/usr/share/fonts/truetype/freefont/FreeMono.ttf';
-
- circleWrite($im, $black, $font, 15, min($dx / 3, $dy / 3), 'salut c\'est moi', $dx / 2, $dy / 2);
-
- header("Content-type: image/png");
- imagepng($im);
- imagedestroy($im);
- ?>
<?php
function sq($x){ return $x * $x; }
function convrad (){ return pi() / 180; }
function convdeg (){ return 180 / pi(); }
/**
* @param $im l'image
* @param $color la couleur
* @param $font la police
* @param $size la taille
* @param $r le rayon du cercle
* @param $phrase la phrase a afficher
* @param $cx le centre du cercle (abscisse)
* @param $cy le centre du cercle (ordonnee)
* @param $phy le decalage
*/
function circleWrite($im, $color, $font, $size, $r, $phrase, $cx, $cy, $phy = 180){
// combien de degres entre deux lettres ?
$tab = imagettfbbox($size , 0 , $font , 'X' );
$lenX = $tab[4] - $tab[0];
$lenY = $tab[5] - $tab[1];
$len = sqrt(sq($lenX) + sq($lenY));
$step = atan($len / $r) * convdeg();
$nbrLettres = strlen($phrase);
for ($i=0;$i<$nbrLettres;$i++){
$angle = $phy + $i * $step;
$angleRAD = $angle * convrad();
$x = $cx + cos($angleRAD)*$r;
$y = $cy + sin($angleRAD)*$r;
imagettftext($im, $size, 270 - $angle , $x, $y, $color, $font, $phrase[$i]);
}
}
$dx = 200;
$dy = 200;
$im = imagecreate($dx,$dy);
$white = imagecolorallocate($im, 255,255,255);
$black = imagecolorallocate($im, 0,0,0);
$font = '/usr/share/fonts/truetype/freefont/FreeMono.ttf';
circleWrite($im, $black, $font, 15, min($dx / 3, $dy / 3), 'salut c\'est moi', $dx / 2, $dy / 2);
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
?>