Menu

écrire un texte sur une image [Résolu]

Meriem - 14 mai 2017 à 12:13 - Dernière réponse :  Meriem
- 15 mai 2017 à 15:27
slm
j'ai en train de créer une carte sous forme une image avec une texte changer selon les informations entrer j'ai trouver ce code la qui est écrit sur une image

fichier create_image.php
<?php
header('Content-type: image/jpeg');
$jpg_image = imagecreatefromjpeg('card.jpg');
$white = imagecolorallocate($jpg_image, 255, 255, 255);
$font_path = 'font.TTF';
$text = "This is a sunset!";
imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);
imagejpeg($jpg_image);
imagedestroy($jpg_image);
?>

le code html
<img src="create_image.php">

mais un message d'erreur est afficher l'image ne s'affiche pas car elle contient des erreurs
Afficher la suite 

5 réponses

Répondre au sujet
le père. 6042 Messages postés mardi 15 mai 2012Date d'inscription 17 avril 2018 Dernière intervention - 14 mai 2017 à 12:32
0
Utile
Bonjour

Il est probable que l'image ne soit pas bonne parce qu'elle contient elle-même un message d'erreur d'exécution du script create_image.php. C'est ce qui m'est arrivé quand j'ai essayé ton script.

Pour voir ce message d'erreur, essaye de lancer le script create_image.php seul, en mettant en commentaire la ligne
header('Content-type: image/jpeg');
. Recopie le message d'erreur que tu verras.

As-tu bien une image 'card.jpg' dans le même répertoire que ce script ?
As-tu bien un fichier de police de caractères 'font.TTF' dans le même répertoire que ce script ?
Commenter la réponse de le père.
le père. 6042 Messages postés mardi 15 mai 2012Date d'inscription 17 avril 2018 Dernière intervention - 14 mai 2017 à 21:51
0
Utile
De rien
Commenter la réponse de le père.
0
Utile
Merciiiiiiiiiiiiiiiiiiiiiii bcp mon pb est résolu par 2 étapes :
1- le font.ttf doit etre dans le meme repertoire de ce script
2- supprime
header('Content-type: image/jpeg');

merci le père
Commenter la réponse de Meriem
0
Utile
j'ai régler ce pb mais un autre pb est apparaît : le texte qui écrit sur l'mage en arabe est affiché de manière non continu telle que un espace entre les caractères comme ceci "م ر ي م"
Commenter la réponse de Meriem
0
Utile
j'ai résolu mon problème ale bibliothèvec 2 étapes:
1- télécharger que de arabic sur ce lien https://github.com/tawfekov/ar-php.
2- j'ai ajouter ce code dans le fichier create_image
<?php
//Set the Content Type
header('Content-type: image/jpeg');

// Create Image From Existing File
require('I18N/Arabic.php');
$Arabic = new I18N_Arabic('Glyphs');

$prenom = $Arabic->utf8Glyphs('مريم');

$jpg_image = imagecreatefrompng('card1.png');

// Allocate A Color For The Text
$white = imagecolorallocate($jpg_image, 255, 255, 255);

// Set Path to Font File
$font_path = 'font.ttf';

// Set Text to Be Printed On Image

// Print Text On Image
imagettftext($jpg_image, 16, 0, 170, 100, $white, $font_path, $text);

// Send Image to Browser
imagepng($jpg_image);

// Clear Memory
imagedestroy($jpg_image);
?>


et déplacer le fichier create_image.php et deuxième fichier de imdraw.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<img src="create_image.php">
</body>
</html>

et l'image card.png et la police font.ttf et dans le dossier télécharger a partir de lien.
merciiiiiiiiiiiiiiiii
Commenter la réponse de Meriem