Home>Article>Backend Development> php 生成图片。汉语显示乱码
php 生成图片。中文显示乱码
php 生成图片的中文部分。。变成乱码。。该怎么解决。。?
以下我是我的代码
字体已经拷贝到我的跟目录了:
header("Content-type: image/png");
$height=200;
$width=200;
$im=@imagecreate($width,$height) or die("Cannot Initialize new GD image stream");
//颜色设置
$background_color = imagecolorallocate($im, 255, 255, 255);//背景颜色
$lin_color = imagecolorallocate($im, 209, 124, 2);//线条颜色
$text_color= imagecolorallocate($im, 209, 124, 2);//文字颜色
//画图
imagefill($im,0,0,$background_color);//填充背景
//5条横线
imageline($im, 0, 0, $width, 0, $lin_color);
imageline($im, 0, 199, 199, 199, $lin_color);
imageline($im, 0, 50, $width, 50, $lin_color);
imageline($im, 0, 100, $width, 100, $lin_color);
imageline($im, 0, 150, $width, 150, $lin_color);
//5条竖线
imageline($im, 0, 0, 0, $height, $lin_color);
imageline($im, 199, 0, 199, 199, $lin_color);
imageline($im, 50, 0, 50, $height, $lin_color);
imageline($im, 100, 0, 100, $height, $lin_color);
imageline($im, 150, 0, 150, $height, $lin_color);
//输入文字
$str=iconv("Gb2312","UTF-8","中文");
$font = 'arial.ttf';
ImageTTFText($im, 13, 0, 10,10, $text_color, $font,$str);
//输出图像
imagepng($im);
//清理
imagedestroy($im);
?>
------解决方案--------------------
// 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 = '方正卡通简体...';
// Replace path by your own font path
$font = '方正卡通简体.ttf';
$text = iconv('gb2312','utf-8',$text);#[color=#FF0000]Attention[/color]
// 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);
?>