1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
<?php
header ("Content-type: image/png");
$imageTitre = imagecreatetruecolor(500, 60);//image contenant le texte du titre
$imageFichier = "121240b.jpg";
$screenShoot = imagecreatefromjpeg($imageFichier);//image contenant la photo sur laquelle on va mettre le texte
$nomCarte = $_GET['nomCarte'];
//couleurs
$transparent = imagecolorallocatealpha($imageTitre, 255, 255, 255, 127);
$gris = imagecolorallocate($imageTitre, 200, 200, 200);
$blanc = imagecolorallocate($imageTitre, 255, 255, 255);
$noir = imagecolorallocate($imageTitre, 0, 0, 0);
$rouge = imagecolorallocate($imageTitre, 255, 0, 0);
$grisDePolice = imagecolorallocate($imageTitre, 236, 227, 203);
//chargement de la police de caractère
$font = './tf2build.ttf';
//on remplit le titre d'une couleur transparente
imagefill($imageTitre, 0, 0, $transparent);
/*imagettftext($imageTitre,17,0,20, 20,$noir, $font, $nomCarte);
imagecopy ( $imageTitre, $imageTitre, 0, 0, 2, 2, 500, 60 );*/
//on place le texte
imagettftext($imageTitre,17,0,20, 20,$grisDePolice, $font, $nomCarte);
//recadrage du texte de manière a garder que le cadre intéressant
$cadreTexte = imageftbbox ( 17 , 0 , $font , $nomCarte );
$widthTitre = $cadreTexte[2]-$cadreTexte[6]+10;
$heightTitre = $cadreTexte[3]-$cadreTexte[7]+10;
$crop = imagecreatetruecolor($widthTitre, $heightTitre);
imagefill ( $crop , 0 , 0 , $transparent );
imagecopy ( $crop, $imageTitre, 0, 0, $cadreTexte[6]+19, $cadreTexte[7]+22, $widthTitre, $heightTitre );
$imageTitre = $crop;
//redimensionnage et recadrage de la photo de manière à ce qu'elle ne fasse que 425 pixel de large
$taille = getimagesize ( $imageFichier);
$width = 425;
$height = $taille[1] / ($taille[0]/425); // hauteur / (largeur / taille voulu)
$crop2 = imagecreatetruecolor($width, $height);
imagefill ( $crop2 , 0 , 0 , $transparent );
imagecopyresampled ( $crop2 , $screenShoot , 0 , 0 , 0 , 0 , $width ,$height , $taille[0] , $taille[1]);
$screenShoot = $crop2;
imagecopy( $screenShoot, $imageTitre, 0, 20, 0, 0, $width, $height);
ImagePng($screenShoot);
?> |
Partager