|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
Bonjour,
Je souhaiterais ajouter un texte sur une image créée grâce à PhP et la librairie GD. La fonction ci-dessous créé l'image avec un degradé, mais je n'arrive pas à y incruster un simple texte... Auriez vous une idée ? Sur mon autre fichier j'appelle la fonction grâce à : Code :
$image = new gd_gradient_fill($width,$height,$direction,$startcolor,$endcolor,$step); Code :
__________________
Blog de cuisine |
||
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() |
Utilise la fonction imageftext()
PS : Un petit tour sur le manuel de la librairie GD permet de trouver la bonne fonction
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
Salut Amoiraud,
Merci mais j'avais bien sur déjà essayé sinon je ne vous aurais pas sollicité Code :
__________________
Blog de cuisine |
||
|
|
00
|
|
|
#4 |
![]() ![]() |
Bonjour,
a moins que je ne me trompe : - gd_gradient_fill() est une fonction. - l'image est crée DANS cette fonction - EN DEHORS de la fonction, la "ressource d'image" n'est plus disponible (je pense) Essaie en mettant A L'INTERIEUR de ta fonction gd_gradient_fill() : imagettftext(...);
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
Comme ça (ci-dessous incruster dans la class), ça ne marche pas :
Code :
__________________
Blog de cuisine |
||
|
|
00
|
|
|
#6 | ||||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Normal, dans
Code :
imagettftext($image, $size, $angle, $x, $y, $text_color, $font_file, $text); Si tu as une police .ttf sur ton serveur, j'imagine que déjà, tu souhaiterais : Code :
Sinon, utilise imagestring() à la place: Code :
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
||||
|
00
|
|
|
#7 | ||||||
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
Bonjour Shikiryu,
Merci pour ta réponse ! En fait si j'ai bien mes variables mais dans mon autre fichier... En fait j'ai la hierarchisation suivante : Repertoire "Class/gd-gradient-fill.php" et dans mon repertoire principal j'ai bien mes variables : Code :
Code :
Code :
__________________
Blog de cuisine |
||||||
|
|
00
|
|
|
#8 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Il serait malin etant donné que tu n'y arrives pas, de faire un test dans un fichier simple et sans utiliser de variables.
|
|
|
00
|
|
|
#9 | ||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Citation:
Tu ne peux pas faire appel à des variables d'un autre fichier dans un constructeur à moins de :
Citation:
Un commentaire un peu plus constructif serait le bienvenue... Une erreur ? un message ? Qu'est ce qui apparait ?
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
||
|
00
|
|
|
#10 | ||||||
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
Citation:
Citation:
=> par contre si je ne l'ai pas fait avant, c'est parce que cela à marché en mettant simplement le code que je t'ai mis avant (fais le test tu verras): Code :
Citation:
Citation:
__________________
Blog de cuisine |
||||||
|
|
00
|
|
|
#11 | |||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Citation:
Citation:
Et donc avec tes paramètres (éronnés avec $direction = vertical Citation:
Donc, non, j'ai testé et ça ne fonctionne pas à cause de l'erreur que j'ai pointé plus haut. (si tu veux une preuve : http://codepad.viper-7.com/BXkisx ) Par ailleurs, on peut remarqué dans les erreurs de la page ci-dessus, que 3 variables n'ont pas été initialisées : Dans la fonction fill() il faut ajouter avant Code :
for ( $i = 0; $i < $line_numbers; $i=$i+1+$this->step ) {
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
|||
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
Merci Shikiryu,
Je ne doutais pas de tes paroles quant à mes bugs (et pour les afficher !!) Tes explications me paraissent claires ! Quelques questions cependant : Est-il possible d'utiliser la fonction imagettftext au lieu de imagestring ? En effet mon script global (plus gros forcément) utilise cette fonction pour créer d'autres images et ça m'est utile notamment pour déterminer la taille du texte afin de le centrer par la suite. Deuxième question : Est-il préférable de faire appel à une class externe avec require_once ou d'inclure cette classe directement dans mon fichier avec des conditions afin de l'utiliser ou non ? Dernière question : au final, au lieu d'afficher l'image via un header PNG / GIF / ou JPEG, est-il possible de la stocker dans une variable $image pour l'utilser par la suite ? Merci encore pour tes lumières... Alex.
__________________
Blog de cuisine |
|
|
00
|
|
|
#13 | ||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Pour répondre à tes questions dans l'ordre :
Pour ce dernier, il te suffit de rajouter un getter sur la variable $image. Par exemple, Code :
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
||
|
00
|
|
|
#14 | |||||
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
1. Merci, je vais alors tester avec imagettftext !
2. Après relecture, je pense que je n'ai pas été très clair... Je récapitule : En gros est-il préférable de faire appel à un fichier externe (dans mon fichier PhP principal qui génère l'image) qui contient ma class gd-gradient-fill OU cela revient-il au même d'intégrer ma class dans mon fichier PhP principal et ainsi éviter d'appeler ma class via un fichier externe avec "require_once" ? 3. donc le code ci-dessous, me permet de stocker l'image dans une var ? Code :
Citation:
Code :
__________________
Blog de cuisine |
|||||
|
|
00
|
|
|
#15 | ||
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Alors, il n'y a pas de "préférence" dans l'inclusion des fichiers.
Personnellement, je préfère faire : une classe = un fichier (même si dernièrement, j'en ai mis 4 dans un seul, mais c'était un cas particulier) Mais, je fais quasi jamais une classe dans un fichier qui utilise cette classe... Pas très beau, pas très pratique, quasi non réutilisable. Pour le 3, ça aurait été plus vite de dire que c'était pour créer un gif animé. Déjà, pour cela il va te falloir modifier la fonction "display" car elle génère en priorité du png (de mémoire) Ensuite, une fois qu'elle génère un gif : Code :
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
||
|
00
|
|
|
#16 |
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
J'en profite pour remercier jreaux62 et sabotage qui ont aussi participer à la discussion car je n'avais pas vu leurs réponses avant... désolé !
Shikiryu: Merci, je vais donc laisser ce fichier dans une class externe Concernant mon gif, oui effectivement mais je voulais voir un problème à la fois Je vois très bien le principe via ton exemple, je vais donc ajouter la partie ci-dessous qui me manque et tester en rentrant du boulot ce soir ! Je te tiens au courant dès que c'est fait ! Encore merci pour tes conseils
__________________
Blog de cuisine |
|
|
00
|
|
|
#17 | ||||||
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
Me voici de retour après test...
Petite deception ça ne fonctionne pas encore tout à fait Le texte est OK il s'incruste bien, mais l'image reste fixe au lieu d'être animée. J'ai bien ajouté dans ma class externe gd-gradient-fill.php : Code :
Ensuite j'ai modifié mon fichier principal en y remplaceant ce qui suit (qui marche pour une image "normale" gif : Code :
Code :
Mais l'image reste bloquée sur l'image dégradé avec le texte et la seconde image n'apparait pas... As tu une idée ?
__________________
Blog de cuisine |
||||||
|
|
00
|
|
|
#18 | |||||||
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
Citation:
Code :
Code :
__________________
Blog de cuisine |
|||||||
|
|
00
|
|
|
#19 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2011 Messages : 399 ![]() |
Comme je l'ai déjà dit : J'ai aussi indiqué qu'il fallait un genre de boucle, ou plusieurs fois ce que j'ai indiqué dans la boucle avec les modifications que tu souhaites entre chacun...
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery. Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels. Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc... |
|
00
|
|
|
#20 | ||||||
|
Invité régulier
![]() Inscription : novembre 2004 Messages : 158 ![]() |
Oui oui j'avais bien lu
Néanmoins la boucle est déjà OK et en Gif car lorsque j'enleve ce code et que je créé une image classique (sans faire appel à la class) et que j'appel ma fonction ci-dessous : Code :
Par contre, dès que j'essaie d'ajouter l'image en dégradée créé via ma class et que j'adapte le code ci-dessus pour utiliser cette image dégradée avec le code ci-dessous : Code :
Le truc c'est donc que l'image est bloquée dès lors que j'appel mon image créée dans ma class gif-gradient-fill.php. J'ai alors pensé que dans cette class il y avait la fonction function display ($im) qui envoi un header or j'en ai déjà dans mon fichier principal : Code :
__________________
Blog de cuisine |
||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com