Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: SIBELIUS le le 21-01-2003 a 17:01:18

Titre: Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 21-01-2003 a 17:01:18

Salut à tous,

Je voudrais créer un module qui génèrerait dynamiquement des images avec du texte personnalisé dessus.

En gros, j'aimerais savoir comment fonctionne le principe des e-cards personnalisées, puisque le concept ressemble à ce que je veux faire.

Est-ce complexe à réaliser ?

Exemple :

http://www.zoomduweb.com/images/plage.jpg

Merci d'avance

Titre: Re:Création d'image avec texte personnalisé
Posté par: PotatoesJunky le le 21-01-2003 a 17:07:40

Je suis pas certain que ça existe en php, Sib'. Par contre, certains logiciels le font. Je vais me renseigner ;)

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 21-01-2003 a 17:28:52

ben on va bien voir... mais il existe une fonction PHP de génération dynamique d'images

Titre: Re:Création d'image avec texte personnalisé
Posté par: Shain le le 21-01-2003 a 19:45:14

si, ca existe ... je vais rechercher ca ...

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 21-01-2003 a 22:13:54

tu veux juste rajouter du texte sur une image ?

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 21-01-2003 a 22:51:04

POde > oui, en effet, et j'aimerais que cette image soit récupérable ensuite

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 21-01-2003 a 23:04:04

oki bouge pas, je vais récupérer des bouts de scripts :)

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 21-01-2003 a 23:19:47

j'ai repris et adapté un script ke javais déjà créé :

http://stonemartensoft.free.fr/textephp.txt (http://stonemartensoft.free.fr/textephp.txt)

c'est pas plus compliqué que ca :)

en fait mon script upload une image, la redimensionne en 5 vignettes et ajoute sur une d'elle une mention et un trait en diagonal pour la barrer, ca c la partie ki ajoute la mention

si tu veux traiter autre chose ke du jpg, dans les fonctions tu peux mettre GIF ou PNG

gif ne marche plus avec les versions plus récentes ke gd1.6 pour des raisons de droit, si tu veux un texte en surimpression, avec une gestion de la transparence il faut utiliser gd 2

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 12:11:16

Je viens de voir ton post à l'instant, grâce à ton MP !

Je te remercie, mais j'ai déjà quelques questions :

- concrêtement, comment fonctionne $img_ment = "$IMG_ROOT/$id.jpg" (si j'ai par exemple une image photo.jpg, comment la définir? doit-elle se trouver dans le répertoire du script? où sera-t-elle uploadée et sous quel nom?)

EDIT :

J'ai essayé avec ces valeurs :
$img_ment = "carte.jpg"
$img_mentb = "carte_b.jpg"
$police_type = "maian.ttf"

Le code fonctionne, mais rien ne se passe (j'ai uploadé l'image et la police et le fichier est en php3) :(

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 14:07:10

en fait j'ai tiré ce code d'un de mes scripts et IMG_ROOT est la variable qui contient le répertoire, que je modifie dans un fichier de config
mais tu peux l'enlever en fait

qu'elles sont les dimensions de ton image? police 20 c'est gros quand meme :)
tas essayé en inscrivant le texte depuis l'origine et en petite police?
et tu as bien mis la police dans le même répertoire que le script?

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 14:15:09

oui, j'ai fait tout ça
je me suis renseigné sur les différentes fonctions PHP et j'ai testé un autre script différent qui marche très bien.

Par contre le tien ne donne rien du tout :(

J'ai testé les variables avec un echo : elles fonctionnent

Voici l'adresse de test : http://www.zoomduweb.com/lovechances/ecards/envoi.php3

Et voiçi le code utilisé :

Code:

<?
$img_ment = "carte.jpg";
$img = imagecreatefromjpeg($img_ment); /
$img_mentb = "carteb.jpg";
$img_ment_sz = getimagesize($img_ment);
$img_ment_width = $img_ment_sz[0];
$img_ment_height = $img_ment_sz[1];

$titre = "TITRE";
$titre_police = 14;
$titre_angle = 0;
$titre_abs = 10;
$titre_ord = $img_ment_height-10;
$police_type = "maian.ttf";
$noir = imageColorAllocate($img,0,0,0
imageTTFText($img,$titre_police,$titre_angle,$titre_abs,$titre_ord,$noir,$police_type,$titre);
?>

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 14:33:18

à part la paranthèse et le ; qui manquent à l'avant dernière ligne (erreur de copier coller) je vois pas :/
bon d'un coté si t'as trouvé un script qui marche c'est pas grave, et ce script marche bien chez moi :/

faudrait que j'en fasse une fonction

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 14:49:06

Le problème est que l'autre script n'utilise pas une image existante mais un crée une nouvelle :(

Or je n'arrive pas à faire un remix des deux qui fonctionne


Code:

<?php
header("Content-type: image/jpeg");
$im = imagecreate(400,30);
$black = imagecolorallocate($im, 255,255,255);
$white = imagecolorallocate($im, 0,0,0); // Remplacez path par votre chemin d'accès aux polices
imagettftext($im, 20, 0, 10, 20, $white, "maian.ttf", "Test en cours... Omega: &#937;");
imagejpeg($im); imagedestroy($im);
?>


EDIT : en fait, je viens de réussir !
le résultat est ici : http://www.zoomduweb.com/lovechances/ecards/envoi2.php3

Par contre, il me reste plus qu'à placer le texte au bon endroit !

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 14:52:05

quel est le texte que tu veux afficher et les dimensions de l'image? elles sont variables?
et à quel endroit tu veux afficher le textE?

je vais faire le script chez moi en entier et on comparera avec le tient pour voir ce qui peut clocher

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 14:55:27

Je te remercie, mais je pense que je m'en sors en adaptant le second script (celui que j'ai récupéré) :

Voiçi une version qui fonctionne :

Code:

<?php
header("Content-type: image/jpeg");
$im = @imagecreatefromjpeg("carte.jpg");
$black = imagecolorallocate($im, 255,255,255);
$white = imagecolorallocate($im, 0,0,0); // Remplacez path par votre chemin d'accès aux polices
$texte="Test en cours... Omega: &#937;";
imagettftext($im, 14, 0, 30, 30, $black, "maian.ttf", $texte);
imagejpeg($im); imagedestroy($im);
?>

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 14:58:27

ah bin voila :)

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 18:53:01

Bon, je suis en-train de m'en sortir, mais il me reste deux gros problèmes :

1- l'image (qu'elle soit générée en gif ou en jpeg) est de très mauvaise qualité

2- le texte refuse de s'écrire en blanc !!! (malgré que le code soit juste)

Voici l'URL de test : http://www.zoomduweb.com/lovechances/ecards/ecards.php3

Et voiçi le code utilisé :

Code:

<?php
header("Content-type: image/jpeg");
$im = @imagecreatefromjpeg("carte.jpg");

$couleur = imagecolorallocate($im, 255,255,255);
$pourc=$pourc."% d'affinités";

imagettftext($im, 16, 0, 50, 50, $couleur, "maian.ttf", $un);
imagettftext($im, 16, 0, 50, 105, $couleur, "maian.ttf", $deux);
imagettftext($im, 16, 0, 30, 210, $couleur, "maian.ttf", $pourc);
imagejpeg($im);
imagedestroy($im);
?>

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 19:04:02

Bah en fait après quelques tests, j'ai l'impression que la couleur du texte dépend de la couleur de fond de limage ::)

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 19:04:07

pour la qualité d'image j'ai le même probleme, mais vu ke les images visibles n'est pas celle qui sera téléchargée (en téléchargement ya l'image sans compression) ca ne me gène pas trop

et pour la couleur, je veux du noir mais j'ai jamais le noir non plus :) à vrai dire j'ai pas encore cherché à comprendre :p

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 19:09:09

lol, ben je vais voir sur les sites de PHP ;)
Merci pour tout en tout cas !

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 19:10:07

de rien, mais tu t'en es très bien sortit tout seul ;)

en fait l'important pour toi était de connaitre l'existence de GD :)

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 19:16:55

Yep, en tout cas je confirme que la couleur de police change selon les couleurs de l'image.
Je n'ai rien changé au script (écriture noire), mais simplement changé les motifs de l'image ... et l'écriture change de couleur !!!

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 19:35:43

vi moi c pareil :)

faudra ke je vois la réelle utilité de "$im" dans imagecolorallocate, vu ke pour définir du noir ses 3 composantes suffisent, je comprends pas pourkoi il faut faire référence à l'image

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 19:39:36

Bon, j'en suis au point suivant : envoyer l'image à un ami par email.
J'ai testé quelques scripts, mais rien ne fonctionne... pourtant je veux un truc simple juste avec le nom de l'expéditeur, l'adresse destinataire et l'image en fichier joint.

PS : je commence peut-être à me mettre en auto-hors sujet ;)

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 20:20:29

la par contre je te conseille de refaire un topic parce que je n'ai jamais envoyé d'image par mail :)

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 20:29:23

tiens, je reviens sur le sujet : j'ai aperçu que lorsqu'on voulait sauvegarder l'image générée, il la considérait comme du BMP ???

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 20:36:15

comment ça?
l'image générée est du bmp, ou c'est du jpg considéré comme un bmp?

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 20:44:54

Ben en fait l'image est du gif, considéré comme du bmp

Mais pas toujours apparemment : je viens de tester et ça fonctionne

Peux-tu tester ?
http://www.lovechances.com/
Tu fais un test de noms au hasard et il affiche un lien "Créer un Faire-part"... dis-moi ce que te donne le clic-droit sur l'image générée ?

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 21:12:17

Fichier PHP3 ;D


c'est pas mal ton truc :)

mais t'enregistres pas d'image sur le server? avant de créer l'image tu déclares sont type avec les mime machin?

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 21:18:55

euh... non ;)

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 21:31:21

ici : http://www.toutestfacile.com/phpinit.php?tef_site=php&chap=gd2
ils utilisent la fonction header pour déclarer le type


Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 21:45:34

OK !
Par contre, il semblerait qu'on ne puisse pas récupérer l'image générée car elle n'est pas sauvée sur le serveur, mais juste affichée :(

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 21:46:34

oui justement
mais tu peux la générer, la stocker sur le server, et l'afficher après? c'est ce que je fais :)

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 21:52:15

oui, mais comment la sauver sur le serveur... sachant qu'elle doit être nommée différemment à chaque fois ???

J'ai vu dans ton code que tu utilisais $img_mentb pour définir l'image qui sera générée ... mais à aucun moment tu ne te sers de cette variable !

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 21:57:19

mais rien ne t'empeche de composer le nom de l'image avec le prénom1 et le prénom 2 par exemple

et Imagejpeg() créé une image et l'enregistre sur le server avec le nom ke tu lui spécifie ou l'affiche

et dailleurs je viens de voir que........................ tu pouvais spécifier la qualité de l'image!!

http://www.zend.com/manual/function.imagejpeg.php

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 21:58:42

Citation de: SIBELIUS le le 26-01-2003 a 21:52:15
oui, mais comment la sauver sur le serveur... sachant qu'elle doit être nommée différemment à chaque fois ???

J'ai vu dans ton code que tu utilisais $img_mentb pour définir l'image qui sera générée ... mais à aucun moment tu ne te sers de cette variable !


si, en fait je l'utilise dans la suite du script, j'ai copier une ligne en trop lol
justement je la réutilise dans la fonction imagejpeg :/


"The filename argument is optional, and if left off, the raw image stream will be output directly"

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 22:05:56

"dailleurs je viens de voir que........................ tu pouvais spécifier la qualité de l'image!!"

>>> marche pô chez moi :(

"si, en fait je l'utilise dans la suite du script, j'ai copier une ligne en trop lol
justement je la réutilise dans la fonction imagejpeg"

>>> tu peux m'expliquer, alors comment tu la stockes ?

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 22:13:43

faudrait que je ressorte tout mon script, mais g encore du boulot pour demain et un script à finir impérativement pour ce soir et à mettre en ligne :(

jessaie de faire un script indépendant demain, et de voir en meme tps comment fonctionne la qualité d'image, ca pourrait tjrs etre utile

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 22:17:24

no problemo. Je vais me renseigner un peu aussi ;)

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 22:19:15

tu me tiens au courant si tas des nouvelles au niveau de l'option qualité d'image :)

Titre: Re:Création d'image avec texte personnalisé
Posté par: Shain le le 26-01-2003 a 22:31:37

Pareil, je suis aussi prenneur de ce type d'infos.
Dommage que je n'ai pas le temps de m'y pencher ... (idem pour l'envoi de fichiers joints.)

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 22:34:36

faudrait des journées de 24heures

on fait une pétition? :(

Titre: Re:Création d'image avec texte personnalisé
Posté par: SIBELIUS le le 26-01-2003 a 22:42:49

Bon je me suis un peu renseigné et j'ai trouvé la traduction française de l'instruction ImageJPEG() ici : http://dev.nexen.net/docs/php/annotee/function.imagejpeg.php

En fait, le nom du fichier généré est simplement à mettre en paramètre dans l'inscruction !

imagejpeg($im,"image2.jpg",90) --> le fichier sera stocké sous le nom image2.jpg, avec une qualité de 90 :)

Titre: Re:Création d'image avec texte personnalisé
Posté par: POde.uk le le 26-01-2003 a 23:28:35

vi, tavais essayé comment? :)

c ecrit dans la description dela fonction :

"int imagejpeg ( resource image [, string filename [, int quality])"

seulement par défaut la valeur de quality est 75, perso vu la qualité jaurais plutot dit 20 mais bon :)


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.