[RESOLU] Afficher un texte sur une image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Afficher un texte sur une image

Re: Afficher un texte sur une image

par orell1 » 05 déc. 2015, 00:52

Merci.

Du coup j'affiche via la balise <img src="image.php?text=blabla">
Par contre savez-vous comment je peux changer la couleur de mon texte car quoi que je fasse c'est soit bleue, soit blanc.
Je souhaite également que mon texte proviennent d'une $_GET['montexte'] et qu'il soit transformé en img.

Questions :
- est-ce correct : $txt = $_GET['montexte'];
- $_POST['montexte'] ==> contiendra par exemple :
<div><strong>Ma maison...<br> TEST</strong></div>
est-ce que le HTML sera bien interprété donc si <br> alors saut de ligne?

Merci par avance.
COrdialement

le code :
<?php

header('Content-type: image/gif');   
/* * *******************************  * Parametre  * ********************************  */ 
$largeur = 600; /* longueur de l'image */ 
$hauteur = 600; /* hauteur de l'image */ 
$image = imagecreate($largeur, $hauteur); 
/* Background */ 
$image = imagecreatefromgif("carte2016/Carte.gif");
/* Couleur du text */ 
$couleurTxt = imagecolorallocate($image, 19,57,92);
/* texte à mettre dans l'image */ 
$txt = "ocdocde,ciod,eci,eic,doi,cid,ci,ei<br>kd,zi,zjindjzndze,"; 
$txt = "ocdocde,ciod,eci,eic,doi,cid,ci,ei<br>kd,zi,zjindjzndze,"; 
/* Taille du texte */ 
$font = 3; 
/* Hauteur et largeur des caratères */ 
$largeurCaractere = ImageFontWidth($font); 
$hauteurCaractere = ImageFontHeight($font); 
/* 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 = 400; 
/* Ajout du texte au centre de l'image */ 
$image_string = ImageString($image, $font, $positionCentreHor, $positionCentreVer, $txt, $couleurTxt); 
/* Création de l'image */ 
imagegif($image); 

?>

Re: Afficher un texte sur une image

par @rthur » 04 déc. 2015, 15:20

Comment fait-on pour afficher l'image par la suite une fois quelle est fusionnée?
un echo?
Tu l'enregistres qq part sur ton serveur et tu l'insère dans ton mail comme tu aurais fait pour une image classique.
Soit en mettant le lien vers l'image que tu auras mis dans un répertoire public, soit en embeddant l'image dans le mail (via une librairie d'envoi d'email c'est plus simple).
L'avantage si tu embed l'image dans le mail c'est que tu peux supprimer le fichier généré juste après l'avoir envoyé.

Re: Afficher un texte sur une image

par orell1 » 04 déc. 2015, 11:15

Bonjour,

Comment fait-on pour afficher l'image par la suite une fois quelle est fusionnée?
un echo?

Merci

Re: Afficher un texte sur une image

par orell1 » 04 déc. 2015, 00:18

en effet.
je viens de modifier et pas d'affichage de l'image... :(
<?php
// Charge le cachet et la photo afin d'y appliquer le tatouage numérique
$im = imagecreatefromjpeg('images/construct.jpg');

// Tout d'abord, nous créons un cachet manuellement grâce à GD
$stamp = imagecreatetruecolor(100, 70);
imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF);
imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF);
$im = imagecreatefromjpeg('images/construct.jpg');
imagestring($stamp, 5, 20, 20, 'test', 0x0000FF);
imagestring($stamp, 3, 20, 40, '(c) 2007-9', 0x0000FF);

// Définit les marges du cachet et récupère la largeur et la hauteur du cachet
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Fusionne le cachet dans notre photo avec une opacité de 50%
imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);

// Sauvegarde l'image dans un fichier et libère la mémoire
imagepng($im, 'photo_stamp.png');
imagedestroy($im);

?>

Re: Afficher un texte sur une image

par @rthur » 03 déc. 2015, 23:21

Il faut peut être lire + attentivement ce que tu récupères, et pas juste copier-coller ;-)

Re: Afficher un texte sur une image

par orell1 » 03 déc. 2015, 19:47

Bon bah ça ne fonctionne pas...
ça me rend dingue cette histoire!
<?php
// Charge le cachet et la photo afin d'y appliquer le tatouage numérique
$im = imagecreatefromjpeg('http://monsite.fr/carte__2016/Carte.gif');

// Tout d'abord, nous créons un cachet manuellement grâce à GD
$stamp = imagecreatetruecolor(100, 70);
imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF);
imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF);
$im = imagecreatefromjpeg('Carte.gif');
imagestring($stamp, 5, 20, 20, 'test', 0x0000FF);
imagestring($stamp, 3, 20, 40, '(c) 2007-9', 0x0000FF);

// Définit les marges du cachet et récupère la largeur et la hauteur du cachet
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Fusionne le cachet dans notre photo avec une opacité de 50%
imagecopymerge($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp), 50);

// Sauvegarde l'image dans un fichier et libère la mémoire
imagepng($im, 'photo_stamp.png');
imagedestroy($im);

?>

Re: Afficher un texte sur une image

par @rthur » 03 déc. 2015, 19:01

Bonjour,

Il y a un exemple assez complet dans la doc ici :
https://secure.php.net/manual/fr/image. ... ermark.php

Re: Afficher un texte sur une image

par orell1 » 03 déc. 2015, 18:09

Merci.
Est-ce qu'il y a un exemple concret car je ne comprends pas comment faire là?

Mais tu as raison, si mon php peux récupérer mon $_POST['texte'] + mon <img src="http://www.site.fr/image/016.gif" alt="Carte"> et fusionner pour ne donner qu'une image, ce serait top.

Mais comment faire ça simplement? car je suis vraiment débutant.
Merci par avance;

Cordialement,

Re: Afficher un texte sur une image

par or 1 » 03 déc. 2015, 17:52

Re: Afficher un texte sur une image

par orell1 » 03 déc. 2015, 17:39

tu m’intéresses là...
Comment je peux faire ceci stp?

Merci pour ton aide.

Re: Afficher un texte sur une image

par or 1 » 03 déc. 2015, 17:26

Pour l'autre solution, impossible... le texte est personnalisé à chaque envoi.
si c'est possible, tu génères dynamiquement l'image en php.

Re: Afficher un texte sur une image

par orell1 » 03 déc. 2015, 16:47

Bon bah... ça ne fonctionne pas lorsque l'on envoie dans outlook...
C'est une vraie galère ce truc!

Re: Afficher un texte sur une image

par orell1 » 03 déc. 2015, 16:35

Merci.
Je vais essayer le tableau.

Pour l'autre solution, impossible... le texte est personnalisé à chaque envoi.

Re: Afficher un texte sur une image

par @rthur » 03 déc. 2015, 16:29

Un tableau avec une image en background
Ou la méthode la + sûre, tu écris le texte dans l'image et tu enregistres ça sous la forme d'une image pour l'envoyer :)

Re: Afficher un texte sur une image

par orell1 » 03 déc. 2015, 11:23

Merci.
En fait je souhaite afficher un texte sur une image...
Mais comment faire que celui-ci soit bien affiché... Peu importe la manière. Si vous avez des idées car avec le Z-index j'ai déjà testé et cela ne fonctionne pas... :-(