PHP文字生成图片

原来代码是这样(从网上下载的,我自己不会):<?phpdefine('IN_PHPMPS',true);require_oncedirname(__FILE__).'/i... 原来代码是这样(从网上下载的,我自己不会):
<?php

define('IN_PHPMPS', true);
require_once dirname(__FILE__) . '/include/common.php';

$_REQUEST['act'] = $_REQUEST['act'] ? trim($_REQUEST['act']) : '' ;

switch($_REQUEST['act'])
{
case 'show':
$out = decrypt($_REQUEST['num'], $CFG['crypt']);
$hight = strlen($out)*10;
$image = imagecreate($hight, 20);//创建一个大小为 100*20的图片,大小可更改
$bg = imagecolorallocate($image, 255, 255, 255);//定义白色背景和蓝色文字
$textcolor = imagecolorallocate($image, 55, 55, 55);
for($i=0;$i<=128;$i++){
$point_color = imagecolorallocate ($image, rand(0,255), rand(0,255), rand(0,255));
imagesetpixel($image,rand(2,128),rand(2,38),$point_color);
}
imagestring($image, 5, 0, 3, $out, $textcolor);
header("Content-type: image/png");//输出PNG图片
imagepng($image);
break;

case 'chkcode':
session_start();
$_SESSION["chkcode"] = "";
$chkcode = chkcode();//输出PNG格式图片,并返回生成的验证码。
$_SESSION["chkcode"] = $chkcode;
break;

case 'wenzi'
imagettftext($im, 12, 0, 100, 120, $black, $en_font, $en_text);
imagepng($im);
imagedestroy($im);

}
?>
这样中文的时候就生成乱码了。可否直接在后面再加个中文也能生成的"case"这样我好调用,如果不行要怎么做。

大侠·
总共就百来分了,解决了全送上。
字符是gbk .不要贴源码,是说要怎么改现在的代码让它支持中文
展开
 我来答
百度网友f8be7d806
2009-07-30 · TA获得超过192个赞
知道答主
回答量:265
采纳率:0%
帮助的人:179万
展开全部
$out = decrypt($_REQUEST['num'], $CFG['crypt']);
改成
$out = iconv("gbk","utf-8",decrypt($_REQUEST['num'], $CFG['crypt']));

imagettftext($im, 12, 0, 100, 120, $black, $en_font,
改成
imagettftext($im, 12, 0, 7, 20, $clr, $fnt, $out); 参数你自己改了,我是贴一楼的参数,记得要上传好字体,弄好路径。
博思aippt
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT... 点击进入详情页
本回答由博思aippt提供
龚琬P9
2009-07-30
知道答主
回答量:54
采纳率:0%
帮助的人:0
展开全部
<?php
header("Content-Type:image/png");
$width=100;
$height=30;
$im = imagecreate($width,$height);
$bkg = imagecolorallocate($im, 255,255,255);
$clr = imagecolorallocate($im, 0,0,255);
$fnt = "ziti/simhei.ttf";
//字体色
$font=imagecolorallocate($im,41,163,238);
//模糊点颜色
$pix=imagecolorallocate($im,187,230,247);
//绘模糊作用的点
mt_srand();
for($i=0;$i<1000;$i++)
{
imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$pix);
}

$str = "你好啊^o^!";
// "中文OK" in UTF-8
imagettftext($im, 12, 0, 7, 20, $clr, $fnt, $str); //ttf中文字体
imagerectangle($im,0,0,$width-1,$height-1,$font);
imagejpeg($im);
imagedestroy($im); //释放
?>

注意:$fnt = "ziti/simhei.ttf"; 你要在ziti文件夹中放入simhei.ttf
如果没有这种字体 其他字体可能也行的
可以到百度搜索一下 下载这个字体就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
从长顺将锦
2019-02-11 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:32%
帮助的人:899万
展开全部
$fnt
=
"http:aaa.linbobo.com\simhei.ttf";
//字体文件

这一行写的不对,要写上正确的路径和文件名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友67b3790
2009-07-30
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部
没仔细看你的程序,但是如果你的意思是想加上中文,但是中文是gbk的,然后就出现乱码了的话就对了。
假设你的中文是 $str="这是你的中文内容"
加上下面一句:
$str = iconv("gbk","utf-8",$str)
这时候再把$str加到上面就不会乱码了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
7598287
2009-07-30 · TA获得超过1097个赞
知道小有建树答主
回答量:982
采纳率:0%
帮助的人:901万
展开全部
乱码也分好几种
具体要看图片情况

一般两种原因
1,字体不存在或者不支持
2,文件本身编码和要写的文字编码不一致
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式