图象函数中的中文显示


Posted in PHP onOctober 09, 2006

把GB码转换到UTF8,php中TTF支持UTF8编码的非ASCII字符输出.在分析这段代码之后,发现可以实现中文与ASCII混合输出图象,这样在我们操作图象函数时可以更方便.
代码如下:
<?

function gb2utf8($gb)
{
if(!trim($gb))
return $gb;
$filename="gb2312.txt";
$tmp=file($filename);
$codetable=array();
while(list($key,$value)=each($tmp))
$codetable[hexdec(substr($value,0,6))]=substr($value,7,6);

$utf8="";
while($gb)
{
if (ord(substr($gb,0,1))>127)
{
$this=substr($gb,0,2);
$gb=substr($gb,2,strlen($gb)-2);
$utf8.=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080]));
}
else
{
$this=substr($gb,0,1);
$gb=substr($gb,1,strlen($gb)-1);
$utf8.=u2utf8($this);
}
}

/*$ret="";
for($i=0;$i<strlen($utf8);$i+=3)
$ret.=chr(substr($utf8,$i,3));

return $ret;*/

return $utf8;
}
function u2utf8($c)
{
/*for($i=0;$i<count($c);$i++)*/
$str="";
if ($c < 0x80) {
$str.=$c;
}
else if ($c < 0x800) {
$str.=chr(0xC0 | $c>>6);
$str.=chr(0x80 | $c & 0x3F);
}
else if ($c < 0x10000) {
$str.=chr(0xE0 | $c>>12);
$str.=chr(0x80 | $c>>6 & 0x3F);
$str.=chr(0x80 | $c & 0x3F);
}
else if ($c < 0x200000) {
$str.=chr(0xF0 | $c>>18);
$str.=chr(0x80 | $c>>12 & 0x3F);
$str.=chr(0x80 | $c>>6 & 0x3F);
$str.=chr(0x80 | $c & 0x3F);
}
return $str;
}
?>

--------------------------------------------
<?
Header ("Content-type: image/jpeg");
$im = imagecreate (800, 400);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);
include("gb2utf8.php");
$str=gb2utf8("aaa中过32434");
ImageTTFText ($im, 90, 10, 110, 300, $white, "/usr/share/fonts/default/TrueType/simsun.ttc",
$str);

ImageJPEG ($im);
ImageDestroy ($im);

?>

PHP 相关文章推荐
不要轻信 PHP_SELF的安全问题
Sep 05 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
PHP 5.3新增魔术方法__invoke概述
Jul 23 PHP
yii中widget的用法
Dec 03 PHP
在php和MySql中计算时间差的方法详解
Mar 27 PHP
PHP获取数组的键与值方法小结
Jun 13 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
PHP截取发动短信内容的方法
Jul 04 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
使用php+xslt在windows平台上
Oct 09 #PHP
配置PHP使之能同时支持GIF和JPEG
Oct 09 #PHP
PHP输出控制功能在简繁体转换中的应用
Oct 09 #PHP
PHP 增加了对 .ZIP 文件的读取功能
Oct 09 #PHP
如何去掉文章里的 html 语法
Oct 09 #PHP
如何分别全角和半角以避免乱码
Oct 09 #PHP
玩转虚拟域名◎+ .
Oct 09 #PHP
You might like
PHP删除数组中空值的方法介绍
2014/04/14 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
vue--vuex详解
2019/04/15 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
[01:00:04]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第二局
2016/02/26 DOTA
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
python中readline判断文件读取结束的方法
2014/11/08 Python
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
住院医师规范化培训实施方案
2014/06/12 职场文书
企业公益活动策划方案
2014/08/24 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
逃课检讨书
2015/01/26 职场文书
开会通知短信大全
2015/04/20 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python