kniferpg
kniferpg
采纳率50%
2017-03-10 07:45 阅读 8.4k

php使用imagettftext将文字打印在图片上不显示

  ob_clean();
header("content-type:image/png");
//载入图片路径
$bg = imagecreatefrompng('backgroud.png');
//获取图片大小
$img_info = getimagesize('backgroud.png');
$img_w = $img_info[0];
$img_h = $img_info[1];

$im = imagecreatetruecolor($img_w, $img_h);

imagecopy($im,$bg,0,0,0,0,$img_w,$img_h);
imagedestroy($bg);
$black = imagecolorallocate($im, 0, 0, 0);
$text = '你阿妈但减价益你阿爸!';
$font = 'msyh.ttf';



imagettftext($im, 74, 0, 485, 285, $black, $font, $text);



imagejpeg($im);
imagedestroy($im);

可以显示图片,但是图片上没有我要求的内容。
使用imagestring可以正常显示英文。

再测试

 ob_clean();
$im = imagecreatetruecolor(400, 400); //创建400 30像素大小的画布

$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);

imagefilledrectangle($im, 0, 0, 400, 400, $white); //输出一个使用白色填充的矩形作为背景

//如果有中文输出,需要将其转码,转换为UTF-8的字符串才可以直接传递
//$text = iconv("GB2312", "UTF-8", "回忆经典");
$text = "5555555555555555555555";

//设定字体,将系统中与simsun.ttc对应的字体复制到当前目录下
$font = 'msyh.ttf';

imagettftext($im, 20, 0, 12, 21, $grey, $font, $text); //输出一个灰色的字符串作为阴影
imagettftext($im, 20, 0, 10, 20, $black, $font, $text); //在阴影上输出一个黑色的字符串

header("Content-type: image/png");
imagepng($im);

imagedestroy($im);

文字依然没出现

大神们,求救

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • kniferpg kniferpg 2017-03-10 08:24

    问题找到了,主要是字体文件,不能为:'**.ttf'建一个文件夹就解决了

    点赞 1 评论 复制链接分享
  • qq_35776207 1002710030 2017-09-12 06:41

    请教下 建一个文件夹就解决了?什么意思啊

    点赞 评论 复制链接分享
  • weixin_42516729 weixin_42516729 2018-09-27 03:28

    有没有文字包呀?我在网上都找不到呀

    点赞 评论 复制链接分享
  • weixin_43415904 孙树先 2019-10-06 11:22

    我想问一下如果$text是post过来的变量,还能正常输出吗?

    点赞 评论 复制链接分享
  • m0_37742411 猪小米 2021-02-07 10:27

    字体文件错误

    用这个方法获取文件的位置;

    realpath("./Public/fonts/**.ttf")// 是项目文件根目录,并不是当前文件的目录

    点赞 评论 复制链接分享

相关推荐