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);
?>
Was it helpful?

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
scroll top