Question
I got good result in PHP/GD to write text to image template, text wraps fine but is not "smooth", here is the code I am using:
<?php
header("Content-type: image/png");
$text = "go to school go to school go to school go to school go to school go to school go to school go to school go to school go to school go to school ";
$arrText=explode("\n",wordwrap($text,60,"\n"));
$im = imagecreatefrompng("template.png");
$y = 15; //vertical position of text
foreach($arrText as $arr)
{
$white = imagecolorallocate($im,0,0,0); //sets text color
imagestring($im,5,15,$y,trim($arr),$white); //create the text string for image,added trim() to remove unwanted chars
$y = $y+20;
}
imagepng($im);
imagedestroy($im);
?>
Solution
Try turning on anti-aliasing:
imageantialias($im, true);
Does that make it look any better?
Or else try imagettftext with a truetype font:
imagettftext ( $im, 15, 0, 15, $y, $white, 'fontfile.ttf', trim($arr));
OTHER TIPS
Please try this:-
Remember : set correct path for font $font = 'arial.ttf';
header('Content-type: image/png');
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = 'go to school go to school go to school go to school go to school go to school go to school go to school go to school go to school go to school';
// Replace path by your own font path
$font = 'arial.ttf';
// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow