begin process at 2010 09 06 07:09:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CENTRER UN TEXTE DANS UNE IMAGE GD

CENTRER UN TEXTE DANS UNE IMAGE GD


 Information sur la source

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :gd, php, image, genererimage, centrertexte Niveau :Initié Date de création :11/02/2006 Date de mise à jour :21/02/2006 17:49:52 Vu / téléchargé :12 838 / 517

Auteur : Zeo34

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Avec la librairie GD2 de PHP, il est possible de générer des images ... Mais en ce qui concerne les textes et surtout comment les centrer : c'est une autre histoire !! Voici un script PHP qui permet de :
1/ Générer une image
2/ Dessiner un rectangle rouge
3/ Insérer des textes écrits en noir et centrer sur leurs lignes

Source

  • <?php
  • // Création de l'image
  • $fichierImage = imagecreatetruecolor(350, 400) or die("L'image n'a pas été générée ! Désolé");
  • // Texte à afficher
  • $policeTitre = 4; // La plus grande police
  • $police = 2; // La plus petite police
  • // Fonction pour déterminer le centrage de la chaine de caractères (elle prend comme paramètre : la chaine et la police d'écriture
  • function centrage_texte($z,$y)
  • {
  • // Je calcule le nombre de caractères dans la chaine
  • $a = strlen($z);
  • // Je calcule la taille d'un caractère par rapport à la taille de la police
  • $b = imagefontwidth($y);
  • // Je calcule la taille de ma chaine de caractères
  • $c = $a*$b;
  • // Je calcule combien il me reste de caractères/espace sur les côtés pour centrer mon texte
  • $d = 350-$c;
  • // Je recherche l'emplacement où débutera ma chaine de caractères
  • $e = $d/2;
  • // La chaine commencera ... à cet emplacement
  • return $e;
  • }
  • // Couleurs
  • $couleurFond = imagecolorallocate($fichierImage,255,0,0); // C'est du rouge !
  • $couleurTexte = imagecolorallocate($fichierImage,0,0,0 ); // C'est du noir !
  • // Création d'un rectangle
  • imagefilledrectangle($fichierImage, 0, 0,350,400,$couleurFond);
  • // Textes à centrer
  • $texte1 = "TITRE";
  • $texte2 = "Je suis un texte centré";
  • // Insertion des textes + utilisation de la fonction pour centrer
  • imagestring($fichierImage,$policeTitre,centrage_texte($texte1,$policeTitre),10,$texte1,$couleurTexte);
  • imagestring($fichierImage,$police,centrage_texte($texte2,$police),100,$texte2,$couleurTexte);
  • // Type de l'image
  • header("Content-type: image/jpeg");
  • // Expédition de l'image au navigateur
  • imagejpeg($fichierImage);
  • // Destruction de l'image
  • imagedestroy($fichierImage);
  • /* Les commentaires ont été mis à jour + ajout de l'utilisation de la fonction die() de PHP */
  • ?>
<?php
// Création de l'image
$fichierImage = imagecreatetruecolor(350, 400) or die("L'image n'a pas été générée ! Désolé");

// Texte à afficher
$policeTitre = 4; // La plus grande police
$police = 2; // La plus petite police

// Fonction pour déterminer le centrage de la chaine de caractères (elle prend comme paramètre : la chaine et la police d'écriture
function centrage_texte($z,$y)
	{
		// Je calcule le nombre de caractères dans la chaine
		$a = strlen($z);
		// Je calcule la taille d'un caractère par rapport à la taille de la police
		$b = imagefontwidth($y);
		// Je calcule la taille de ma chaine de caractères		
		$c = $a*$b;
		// Je calcule combien il me reste de caractères/espace sur les côtés pour centrer mon texte
		$d = 350-$c;
		// Je recherche l'emplacement où débutera ma chaine de caractères
		$e = $d/2;	
		// La chaine commencera ... à cet emplacement	
		return $e;		
	}
	
// Couleurs
$couleurFond = imagecolorallocate($fichierImage,255,0,0); // C'est du rouge !
$couleurTexte = imagecolorallocate($fichierImage,0,0,0 ); // C'est du noir !

// Création d'un rectangle
imagefilledrectangle($fichierImage, 0, 0,350,400,$couleurFond);

// Textes à centrer
$texte1 = "TITRE";
$texte2 = "Je suis un texte centré";

// Insertion des textes + utilisation de la fonction pour centrer
imagestring($fichierImage,$policeTitre,centrage_texte($texte1,$policeTitre),10,$texte1,$couleurTexte);
imagestring($fichierImage,$police,centrage_texte($texte2,$police),100,$texte2,$couleurTexte);	
	
// Type de l'image
header("Content-type: image/jpeg");

// Expédition de l'image au navigateur
imagejpeg($fichierImage);

// Destruction de l'image
imagedestroy($fichierImage);

/* Les commentaires ont été mis à jour + ajout de l'utilisation de la fonction die() de PHP */	
?>

 Conclusion

Ce script est inspiré des différentes recommandations et conseils que j'ai pu lire sur des sites et forums PHP ... Il n'utilise pas la fonction "imageftbbox" de PHP car trop complexe (à mon avis) à mettre en oeuvre juste pour centrer des textes ! Il fonctionne pour toutes les longueurs de textes (mais il ne faut pas que la chaine de caractères dépassé en taille la largueur de l'image JPG générée) ...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

21 février 2006 17:49:52 :
Modification des commentaires : lecture des commentaires des membres de PHPCS Modification du script : lecture des commentaires des membres de PHPCS

 Sources du même auteur

Source avec Zip Source avec une capture MULTI-UPLOAD FACILE AVEC JQUERY ET UN PEU DE PHP
Source avec Zip GALERIE D'IMAGES

 Sources de la même categorie

MANIPULATION DES DONNÉES IPTC par shevabam
Source avec Zip Source avec une capture AJOUTER DES EFFETS DE PERSPECTIVE ET DES EFFETS DE REFLET SU... par zulrigh
Source avec Zip Source avec une capture METTEZ VOS IMAGES OU VOS PHOTOS EN 3D ; EN PERSPECTIVE par zulrigh
Source avec Zip FAIRE DES MINIATURE D'IMAGE, DES PHOTOS POUR LES PROFILS par zulrigh
Source avec Zip Source avec une capture CARTOGRAPHIE DYNAMIQUE DE LA FRANCE AVEC UNE BASE MYSQL ET D... par buchron

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture AJOUTER DES EFFETS DE PERSPECTIVE ET DES EFFETS DE REFLET SU... par zulrigh
Source avec Zip FAIRE DES MINIATURE D'IMAGE, DES PHOTOS POUR LES PROFILS par zulrigh
AJOUTER UN ARRIÈRE PLAN SUR UNE IMAGE par digitaldax
REDIMENSIONNER UNE IMAGE EN PHP par digitaldax
Source avec Zip Source avec une capture COMPTEUR DE VISITES DE SITE EN PHP par pat_nat

Commentaires et avis

Commentaire de coucou747 le 11/02/2006 19:22:46

Salut
$fichierImage = imagecreatetruecolor(350, 400);
Il manque un or die...

Commentaire de wizad le 13/02/2006 23:29:02

"Cherche pas à comprendre ! Moi j'ai compris ! Parce ce que je suis trop fort !! Capiche!!"

désolé mais j'ai des doutes sur l'aide apporté par ce genre de commentaires

Commentaire de glork le 17/02/2006 00:06:31

<<<<<<<<<<"Cherche pas à comprendre ! Moi j'ai compris ! Parce ce que je suis trop fort !! Capiche!!"

désolé mais j'ai des doutes sur l'aide apporté par ce genre de commentaires>>>>>

je suis débutant mais d'apres mes connaissances si tu met pas or die(...); et ca marche pas ca génére un message d'erreur... :D

Commentaire de GRenard le 20/02/2006 01:45:08

Il y a peut-être trop de commentaire ;)
Moi des commentaires de la sorte j'appelle ca des easter egg de commentaire ;) par contre, il ne faut pas en abuser...
Ce qui serait bien, serait une fonction qui prend en paramètre l'image et qu'elle utiliser imagesx() plutôt que de hardcoder 350 comme tu le fais.

Commentaire de Zeo34 le 21/02/2006 17:44:47

Bonjour,
Je vais vous répondre ...
1) Pour les commentaires, j'en ai mis pour ceux qui prendront ce script pour qu'ils comprennent comment j'ai programmé (j'enlève les commentaires lorsque le script est prêt à être utilisé!). Quand j'ai commencé le PHP, je trouvais des scripts mais il manquait des commentaires ou de la documentation en rapport (je prends le temps de commenter mes scripts pour que des débutants puissent comprendre : "on a tous été un débutant, un jour!")
2) En ce qui concerne la fonction die() de PHP, vous allez être étonnés mais ce script fonctionne sans ... !!
3) Pour la qualité de mes commentaires, ce script fait parti d'un produit que je développe pour mon entreprise, il contient des commentaires pour les autres développeurs ("// C'est moi la plus grande police ! Nananère !! " et "// Cherche pas à comprendre ! Moi j'ai compris ! Parce ce que je suis trop fort !! Capiche!!
" >> mon chef aime bien ce genre de commentaires et il en ajoute lui aussi : on communique entre nous par les commentaires!)

Cordialement,
Zeo

Commentaire de GRenard le 21/02/2006 18:03:44

Je ne suis pas étonné qu'il manque un or die...
le or die est seulement pour faire planter ton script si GD n'est pas installé... plutôt que de sortir d'autres sortes de warning...
Mais bon ce n'est pas bien grave
Moi par exemple, dans mon installateur (je prépare un prog open source)
Je fais une vérification si gd existe mais après, je ne la fais plus lors de l'exécution.
Si je copiais un code de mon programme ici, il n'y aurait pas de or die... Donc c'est correct si tu ne le mets pas, mais c'est correct de le mentionner aux autres.

Commentaire de piranhaworld le 19/12/2006 10:52:46

c'est un peu bidon comme centrage dans la mesure ou ton texte est à chasse fixe..
essaye de nous centrer un Arial
en faisant des petits tests avec "iiiiiiiiii" et "mmmmmmmmmm" (10 caractères à chaque fois et pourtant bien différent en largeur. Donc impossible à centrer avec ton programme)

Commentaire de sylvain09 le 10/03/2007 09:04:22

piranhaworld => des i ou des m, la taille est la même avec GD.... enfin il me semble :)

Pour ma part merci beaucoup pour cette source, j'ai utilisé la fonction pour aligner mon texte à droite

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Couper le bas d'une image (GD PHP) [ par dezeque ] bonjour,j'aimerai savoir comment faire pour couper le bas d'une image ?elle fais 600X800 et j'aimerai enlver les 50 dernirers pixels du bas pour quell Image GD et php ! prob d'affichage [ par riecola ] Bonjour tout le monde. Voil&#224; mon probl&#232;me : mon utilisateur selectionne une image et un texte au choix dans un formulaire ensuite une page s Problème GD [ par guillaumeoki ] Bonjour,J'ai une image php que j'appelle par image.php?u=.pngEt j'aimerais le changer en image.png je sais que c'est possible mais je ne sais pas comm GD : Algo pour "Tourbillon" sur une image [ par porciner ] Bonjour,Je cherche une méthode pour créer un effet particulier sur une image.Voici le type d'effet que je souhaite réaliser en PHP :Si quelqu'un à une générer une image svg avec php [ par naej56 ] BonjourJe cherche partout et je ne trouve pas la solution a mon problème.le code que je teste est le suivant:&lt;?php    header("image/svg+xml");     passer une variable pour une image [ par ether01 ] Bonjour!Je suis une débutante en PHP et j'ai une question:J'ai créé une page qui demande un long texte au user. Ensuite, je passe cette variable par u Certaines images ne s'affichent pas! [ par steve2206 ] Salut à tous,voilà j'ai commencé mon site avec un haut.php, milieu.php et bas.php avec un css. J'ai créé dans milieu.php plusieurs parties et donc des Déterminer la taille d'une image pour affichage [ par areuh ] Bonjour,Je connais déjà PHP (pas beaucoup mais je me débrouille tout seul pour le code).Par contre au niveau conception site, je débute carrément.Je c Afficher une image en php [ par ircland ] Bon je savais pas trop quoi mettre comme titre, c'est un peu dure à décrire en quelque mots mon problème. Je veux affichier une page dans une page du ico to GD ou to png [ par abdoulax ] Bonjour,Je cherche le moyen d'exploiter une image .ico à partir de la lib GD ou sinon de transformer cette image .ico en .pngSi qlq1 a une solution?Ha


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales