给图片添加文字水印时,中文显示乱码

alilanger 2010-11-24 03:30:22
$text = iconv("GB2312","UTF-8","元旦好:www.thinkphp.com");
$color = imagecolorallocate($img,120,20,9);
imagestring($img,4,100,0,$text,$color);
英文可以显示,中文显示乱码;
iconv()貌似没起什么作用,php支持这个函数;
使用imagettftext()函数,还是这样;
、、、、、、、、、、、、、、、、、
搞不懂、为什么
...全文
1642 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
alilanger 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhang6464 的回复:]

编码是utf8还改什么编码?
ps:或者我理解的程序页面编码不是文件的编码?
引用 3 楼 alilanger 的回复:
引用 1 楼 luciferstar 的回复:

其实,只要把程序另存为,编码改成utf-8,就不需要转码了。


我程序页面编码就是UTF-8的
[/Quote]

我程序页面编码是UTF-8的,不用转就对了,一切在作怪的是imagestring()这个函数,编码无论怎么转,中文都会显示乱码,所以最好还是用imagettftext()函数了。
alilanger 2010-11-25
  • 打赏
  • 举报
回复
楼上的都不行,奇怪了、、、
shootblue 2010-11-24
  • 打赏
  • 举报
回复
编码问题

iconv() 用这个转下编码
zhang6464 2010-11-24
  • 打赏
  • 举报
回复
恩,最后一句是imagedestroy()。。
[Quote=引用 13 楼 zhang6464 的回复:]
你把simhei.ttf移到跟php文件相同的目录下,用下面的代码测,我这里运行是没问题的

PHP code
$im = imagecreatetruecolor(500,300);
$textcolor = imagecolorallocate($im,255,255,255);
$str=iconv('GB2312','UTF-8','中文水印');
ImageTTFText($……
[/Quote]
zhang6464 2010-11-24
  • 打赏
  • 举报
回复
你把simhei.ttf移到跟php文件相同的目录下,用下面的代码测,我这里运行是没问题的
$im = imagecreatetruecolor(500,300);
$textcolor = imagecolorallocate($im,255,255,255);
$str=iconv('GB2312','UTF-8','中文水印');
ImageTTFText($im,30,0,50,140,$textcolor,'SIMHEI.TTF',$str);
header("Content-type: image/png");
imagepng($im);
destroyimage($im);
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhang6464 的回复:]

你确定导入的字体文件时9楼说的那几个?有些是不支持gd库的
ps:我这里可以的,显示中文没问题
[/Quote]

对,字体文件都一样,跟9楼写的代码基本一样
zhang6464 2010-11-24
  • 打赏
  • 举报
回复
你确定导入的字体文件时9楼说的那几个?有些是不支持gd库的
ps:我这里可以的,显示中文没问题
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 jzh2004 的回复:]

我到网上查了好像要指定中文字体路径

$fontfile = "simkai.ttf";
/* $fontfile 字体的路径,视操作系统而定,可以是 simhei.ttf(黑体) , SIMKAI.TTF(楷体) , SIMFANG.TTF(仿宋) ,SIMSUN.TTC(宋体&新宋体) 等 GD 支持的中文字体*/

$str = iconv('GB2312','UTF……
[/Quote]

楼上的,谢了,不过我们写的代码一样,我也是那样写的,中文就是显示乱码了
沪php攻城师 2010-11-24
  • 打赏
  • 举报
回复
我到网上查了好像要指定中文字体路径

$fontfile = "simkai.ttf";
/* $fontfile 字体的路径,视操作系统而定,可以是 simhei.ttf(黑体) , SIMKAI.TTF(楷体) , SIMFANG.TTF(仿宋) ,SIMSUN.TTC(宋体&新宋体) 等 GD 支持的中文字体*/

$str = iconv('GB2312','UTF-8','php自学网'); /*将 gb2312 的字符集转换成 UTF-8 的字符*/

ImageTTFText($im, 30, 0, 100, 200, $pink , $fontfile , $str);
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jzh2004 的回复:]

PHP的加水印好像不支持中文字体,你把你要的中文文字先做成图片,然后添加图片水印好了
[/Quote]

支持,绝对支持,以前做过添加水印这东西,乖乖,这次不好用了
沪php攻城师 2010-11-24
  • 打赏
  • 举报
回复
PHP的加水印好像不支持中文字体,你把你要的中文文字先做成图片,然后添加图片水印好了
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhang6464 的回复:]

编码是utf8还改什么编码?
ps:或者我理解的程序页面编码不是文件的编码?
引用 3 楼 alilanger 的回复:
引用 1 楼 luciferstar 的回复:

其实,只要把程序另存为,编码改成utf-8,就不需要转码了。


我程序页面编码就是UTF-8的
[/Quote]

不改也是乱的,改与不改,中文都显示乱码
zhang6464 2010-11-24
  • 打赏
  • 举报
回复
编码是utf8还改什么编码?
ps:或者我理解的程序页面编码不是文件的编码?
[Quote=引用 3 楼 alilanger 的回复:]
引用 1 楼 luciferstar 的回复:

其实,只要把程序另存为,编码改成utf-8,就不需要转码了。


我程序页面编码就是UTF-8的
[/Quote]
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 baiyuxiong 的回复:]

中文乱码要指定字体。
[/Quote]

我使用imagettftext()函数,指定字体,还是这样、、、、
上面我都写出来了、、
气死我了、、、
alilanger 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luciferstar 的回复:]

其实,只要把程序另存为,编码改成utf-8,就不需要转码了。
[/Quote]

我程序页面编码就是UTF-8的
codeyell-com 2010-11-24
  • 打赏
  • 举报
回复
中文乱码要指定字体。
LuciferStar 2010-11-24
  • 打赏
  • 举报
回复
其实,只要把程序另存为,编码改成utf-8,就不需要转码了。
仿铁血无损原图底部水印系统。后台设置各项参数,无需修改文件。在图片底部加文字水印,不伤害原图画质。 新核心,不需要修改文件,可选择版块、用户组,自定义文字,多少图片宽度以下不使用。 因附件大小原因,本插件未带字体文件。 如果您测试后有黑条但没有文字,请复制您电脑 C:\windows\font 下的 simsun.ttc 到论坛根目录。 再重复一次,如果不能生成文字文字乱码,请上传字体文件。字体文件不提供。 演示: 插件安装方法: 1,把插件文件夹(此说明文件同级,yxf_xxxx)上传至论坛里的plugins/目录下 2,在插件后台选择此插件(若不显示插件名称,则显示与插件文件夹名称,yxf_xxxx)安装。 3,插件列表里启用此插件。 4,配置此插件参数(若有)。 09-11-24 更新:改正了编辑重复加水印的问题。 注意,本插件是GBK插件。是用于显示简体中文显示。其它编码或语言需要字体支持! 不是simsun.ttc请不要改名为simsun.ttc上传!请修改插件程序里的simsun.ttc为实际使用并上传字体。 如用于UTF8,请自行修改plugin.class.php里的 $txt=@iconv($charst,'utf-8',$txt); 改为 //$txt=@iconv($charst,'utf-8',$txt); 本插件并不能满足任何环境下使用,使用不成功者可以找其它插件使用或放弃使用,请不要把原因怪罪于此插件!

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧