我正在使用Joomla 1.5。我有创建图像的脚本,文本覆盖它,但它对我不起作用:
<?php
// Set the content-type
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 = 'Testing...';
// Replace path by your own font path
$font = "ARIAL.TFF";
// 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);
?>
我不明白为什么这不起作用。我在谷歌找到了很多例子,我用它,但总是一样的。
英语中的此错误表示:Image "http://juokoera.lt/a.php" can't be shown, because It have problems (errors)
。
我在谷歌发现,这可能是我的主机故障,我改变它,但同样的问题。请帮助我,如果可以的话。非常感谢你。
更新: 当代码看起来像:
时,我得到了同样的错误dasfasdf
dfas
<?php
header('Content-Type: image/png');
$im = imagecreatetruecolor(400, 30);
$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);
$text = 'Testing...';
$font = "ARIAL.TTF";
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im); ?>
如何在同一个php中使用其他文字?
答案 0 :(得分:0)
我认为你的问题在这里:
$font = "ARIAL.TFF";
实际上,在你的服务器上,一个名为“ARIAL.TFF”的文件不存在,你要查找的字体扩展名是TTF,而不是TFF,实际上你服务器上的“ARIAL.TTF”存在而且我只是下载它,将该行更正为:
$font = "ARIAL.TTF";
之后,您应该能够在图像上书写文字
希望这有帮助
<强>更新强>
更新问题后,我注意到在打印出一些文字后会发送标题。
在header()
功能之前不必打印任何内容,以便正确发送标头。
在PHP manual>header()中,首先要解释的是:
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.