Reputation: 1123
Hello following this answer, i'm trying to add a text to a image using GD Library, sadly i'm unable to do it, this is my code:
<?php
//Set the Content Type
header('Content-type: image/jpeg');
// Create Image From Existing File
$jpg_image = imagecreatefromjpeg('serra.jpg');
// Allocate A Color For The Text
$white = imagecolorallocate($jpg_image, 255, 255, 255);
// Set Path to Font File
$font_path = 'denmark.ttf';
// Set Text to Be Printed On Image
$text = "This is a sunset!";
// Print Text On Image
imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);
// Send Image to Browser
imagejpeg($jpg_image);
// Clear Memory
imagedestroy($jpg_image);
?>
This code will Output the image without the text in it.
The serra.jpg and denmark.ttf files are both in the same folder as the script.
Running the gd_info() function on my server i got the following:
Any ideas on what could possible be going on?
Upvotes: 1
Views: 2543
Reputation: 51
$font_path = 'denmark.ttf';
Should be
$font_path = 'denmark'; //no need to incluce .ttf when not using backward slash.
Upvotes: 0
Reputation: 1123
I was having some weird problem with the $font_path.
So reading the http://php.net/manual/en/function.imagettftext.php
I saw that i have to add putenv... before the $font_path variable like this:
putenv('GDFONTPATH=' . realpath('.'));
$font_path = 'denmark.ttf';
Now is working fine.
Also i tested the solution presented by Roman, and by just changing the font_path to:
$font_path = './denmark.ttf';
The script worked fine!
Thanks for the help guys!
Upvotes: 0
Reputation: 4512
Get a solution,Check this code.
imagejpeg($jpg_image,'newimage.jpeg');
You are not save your image.
<?php
//Set the Content Type
header('Content-type: image/jpeg');
// Create Image From Existing File
$source="mk.jpg";
$jpg_image = imagecreatefromjpeg($source);
// Allocate A Color For The Text
$white = imagecolorallocate($jpg_image, 255, 255, 255);
// Set Path to Font File
$font_path = 'ASMAN.ttf';
// Set Text to Be Printed On Image
$text = "This is a sunset!";
// Print Text On Image
imagettftext($jpg_image, 25, 0, 75, 300, $white, $font_path, $text);
// Send Image to Browser
imagejpeg($jpg_image,'newimage.jpeg');
// Clear Memory
imagedestroy($jpg_image);
?>
Upvotes: 0
Reputation: 92854
Go through the following steps:
'denmark.ttf'
file. Make sure that it accessible by your php script$font_path = './denmark.ttf';
Upvotes: 1