0

PHP/GD でテキストを画像テンプレートに書き込むのに良い結果が得られました。テキストはうまく折り返されますが、「スムーズ」ではありません。使用しているコードは次のとおりです。

<?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);
?>
4

2 に答える 2

2

これを試してください:-

注意:フォントの正しいパスを設定$ 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);
于 2012-08-07T17:55:27.217 に答える
0

アンチエイリアスをオンにしてみてください:

imageantialias($im, true);

それはそれがより良く見えるようにしますか?

または、TrueType フォントで imagettftext を試してください:

imagettftext ( $im, 15, 0, 15, $y, $white, 'fontfile.ttf', trim($arr));
于 2012-08-07T17:40:35.160 に答える