Page 1 sur 1

Figer texte avec GD pour créer des GIF simples

Posté : 16 déc. 2015, 13:48
par orell1
Bonjour à tous,

J'ai réussi à suivre un tuto pour animer un gif, le seul problème c'est que mon texte ($txt) lui aussi est animé...
Peut-on faire en sorte svp que celui-ci reste statique ?

En gros le images tournent mais le texte lui ne bouge pas, il reste à sa place.

Merci par avance.
Cordialement,

Mon code :
<?php
require('gif.class.php');
$animation = array();
$duree = array();
  
//define('LARGEUR', 600);
//define('HAUTEUR', 600);
/* * *******************************  * Parametre  * ********************************  */ 
$largeur = 600; /* longueur de l'image */ 
$hauteur = 600; /* hauteur de l'image */ 
//$txt = html_entity_decode(strip_tags($_GET['fichier'])); 
$txt = 'Test'; 

/* * *******************************  * IMAGE 1  * ********************************  */ 
$image = imagecreate($largeur, $hauteur); 
/* Background */ 
$background = imagecolorallocate($image, 0, 255, 0);
$image= imagecreatefrompng('2016/1.png'); //Notre joli fond :p 
/* Couleur du text */ 
$couleurTxt = imagecolorallocate($image, 238, 153, 26); 
/* texte à mettre dans l'image */ 

/* Taille du texte */ 
$font_size = 10; 
$font = 'arial.ttf';
/* Hauteur et largeur des caratères */ 
$largeurCaractere = ImageFontWidth($font_size); 
$hauteurCaractere = ImageFontHeight($font_size); 
/* Longueur du texte (taille caratère X nombre de caractère) */ 
$largeurTxt = $largeurCaractere * strlen($txt); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
$positionCentreHor = ceil(($largeur - $largeurTxt) / 2); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
//$positionCentreVer = ceil(($hauteur - $hauteurCaractere) / 2); 
$positionCentreVer = 420; 
/* Ajout du texte au centre de l'image */ 
$image_string = ImageString($image, $font_size, $positionCentreHor, $positionCentreVer, $txt, $couleurTxt); 

ob_start();
imagegif($image);
$animation[] = ob_get_clean();
$duree[] = 200;
imagedestroy($image);


/* * *******************************  * IMAGE 2  * ********************************  */ 
$image = imagecreate($largeur, $hauteur); 
/* Background */ 
$background = imagecolorallocate($image, 0, 255, 0); 
$image= imagecreatefrompng('2016/2.png'); //Notre joli fond :p
/* Couleur du text */ 
$couleurTxt = imagecolorallocate($image, 238, 153, 26);  
/* texte à mettre dans l'image */ 

$font_size = 10; 
$font = 'arial.ttf';
/* Hauteur et largeur des caratères */ 
$largeurCaractere = ImageFontWidth($font_size); 
$hauteurCaractere = ImageFontHeight($font_size); 
/* Longueur du texte (taille caratère X nombre de caractère) */ 
$largeurTxt = $largeurCaractere * strlen($txt); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
$positionCentreHor = ceil(($largeur - $largeurTxt) / 2); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
//$positionCentreVer = ceil(($hauteur - $hauteurCaractere) / 2); 
$positionCentreVer = 420; 
/* Ajout du texte au centre de l'image */ 
$image_string = ImageString($image, $font_size, $positionCentreHor, $positionCentreVer, $txt, $couleurTxt); 

ob_start();
imagegif($image);
$animation[] = ob_get_clean();
$duree[] = 50;
imagedestroy($image);


/* * *******************************  * IMAGE 3  * ********************************  */ 
$image = imagecreate($largeur, $hauteur); 
/* Background */ 
$background = imagecolorallocate($image, 0, 255, 0); 
$image= imagecreatefrompng('2016/3.png'); //Notre joli fond :p
/* Couleur du text */ 
$couleurTxt = imagecolorallocate($image, 238, 153, 26); 
/* texte à mettre dans l'image */ 

/* Taille du texte */ 
$font_size = 10;  
$font = 'arial.ttf';
/* Hauteur et largeur des caratères */ 
$largeurCaractere = ImageFontWidth($font_size); 
$hauteurCaractere = ImageFontHeight($font_size); 
/* Longueur du texte (taille caratère X nombre de caractère) */ 
$largeurTxt = $largeurCaractere * strlen($txt); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
$positionCentreHor = ceil(($largeur - $largeurTxt) / 2); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
//$positionCentreVer = ceil(($hauteur - $hauteurCaractere) / 2); 
$positionCentreVer = 420; 
/* Ajout du texte au centre de l'image */ 
$image_string = ImageString($image, $font, $positionCentreHor, $positionCentreVer, $txt, $couleurTxt); 

ob_start();
imagegif($image);
$animation[] = ob_get_clean();
$duree[] = 50;
imagedestroy($image);

/* * *******************************  * IMAGE 4  * ********************************  */ 
$image = imagecreate($largeur, $hauteur); 
/* Background */ 
$background = imagecolorallocate($image, 0, 255, 0); 
$image= imagecreatefrompng('2016/4.png'); //Notre joli fond :p
/* Couleur du text */ 
$couleurTxt = imagecolorallocate($image, 238, 153, 26); 
/* texte à mettre dans l'image */ 

/* Taille du texte */ 
$font_size = 10;  
$font = 'arial.ttf';
/* Hauteur et largeur des caratères */ 
$largeurCaractere = ImageFontWidth($font_size); 
$hauteurCaractere = ImageFontHeight($font_size); 
/* Longueur du texte (taille caratère X nombre de caractère) */ 
$largeurTxt = $largeurCaractere * strlen($txt); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
$positionCentreHor = ceil(($largeur - $largeurTxt) / 2); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
//$positionCentreVer = ceil(($hauteur - $hauteurCaractere) / 2); 
$positionCentreVer = 420; 
/* Ajout du texte au centre de l'image */ 
$image_string = ImageString($image, $font, $positionCentreHor, $positionCentreVer, $txt, $couleurTxt); 

ob_start();
imagegif($image);
$animation[] = ob_get_clean();
$duree[] = 50;
imagedestroy($image);



/* * *******************************  * IMAGE 5  * ********************************  */ 
$image = imagecreate($largeur, $hauteur); 
/* Background */ 
$background = imagecolorallocate($image, 0, 255, 0);
$image= imagecreatefrompng('2016/1.png'); //Notre joli fond :p 
/* Couleur du text */ 
$couleurTxt = imagecolorallocate($image, 238, 153, 26); 
/* texte à mettre dans l'image */ 

/* Taille du texte */ 
$font_size = 10; 
$font = 'arial.ttf';
/* Hauteur et largeur des caratères */ 
$largeurCaractere = ImageFontWidth($font_size); 
$hauteurCaractere = ImageFontHeight($font_size); 
/* Longueur du texte (taille caratère X nombre de caractère) */ 
$largeurTxt = $largeurCaractere * strlen($txt); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
$positionCentreHor = ceil(($largeur - $largeurTxt) / 2); 
/* Recherche de la position horizontale centrale pour centrer le texte */ 
//$positionCentreVer = ceil(($hauteur - $hauteurCaractere) / 2); 
$positionCentreVer = 420; 
/* Ajout du texte au centre de l'image */ 
$image_string = ImageString($image, $font_size, $positionCentreHor, $positionCentreVer, $txt, $couleurTxt); 

ob_start();
imagegif($image);
$animation[] = ob_get_clean();
$duree[] = 300;
imagedestroy($image);


/* * *******************************  * CREATION IMAGE  * ********************************  */   
$gif = new GIFEncoder($animation, $duree, 0, 2, 0, 0, 0, 'bin');
header ("Content-type: image/gif");
echo $gif->GetAnimation();
?>