php加汉字水印怎么变成一个个框了?

作者站长头像
站长
· 阅读数 8

按照php中文网的教程写给图片加水印的代码,都是ok的,但发现汉字变成一个框了,怎么解决啊php加汉字水印怎么变成一个个框了?代码如下

<?php
header("Content-type: text/html; charset=utf-8");
/*打开图片*/
//配置打开图片的路径
$src = "16pic_7145485_b.jpg";
//获取图片信息
$info = getimagesize($src);
//通过图片编号来获取图片的类型
$type = image_type_to_extension($info[2], false);
//在内存中创建一个和图像类型一样的图片
$fun = "imagecreatefrom{$type}";
//把图片复制到内存中
$image = $fun($src);
//操作图片
//设置字体的路径
$font =$font = dirname(__FILE__) ."/simsunb.ttf"; //字体文件
//添加内容
$content = "php中文网HHHHHHH";
//$content = iconv('gb2312','utf-8', "饿死");
//$content = iconv('gbk', 'utf-8', "饿死");
//$content = mb_convert_encoding($content, "html-entities", "utf-8");
//设置字体的颜色和透明度
$col = imagecolorallocatealpha($image, 255, 255, 255, 30);
//写入文字
imagettftext($image, 20, 0, 20, 30, $col, $font, $content);
//输出图片
//浏览器输出
header("Content-type:" . $info['mime']);
$fun = "image{$type}";

$fun($image);
//保存图片
$fun($image, 'FFFF.' . $type);
//销毁图片
imagedestroy($image);

我百度了,试了一下几种方法,好像不太管用

//添加内容
$content = "php中文网HHHHHHH";
$content = iconv('gb2312','utf-8', "php中文网");
$content = iconv('gbk', 'utf-8', "php中文网");
$content = mb_convert_encoding($content, "html-entities", "utf-8");

请大佬指教下还有哪里有问题!

回复
1个回答
avatar
test
2024-07-10

干,是字体的问题answer image我选的是上面这个简体,换成下面这个就OK了

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容