php(gd库)输出中文图像的转换函数

原创 2004年08月30日 20:35:00
作者信息:sadly(
文章信息:中级 初发日期:2001 11 关键字:gd 输出中文图像
来源链接http://www.chinalinuxpub.com/read.htm?id=900
摘要
php(gd库)输出中文图像的转换函数
以下是一段gb2312 -> UTF-8 的函数,西西,我抄了
unicode -> UTF-8 的算法,所以实际比GB2312->unicode
没多多少东西,请大家注意调用gb2utf8()时不能中英文混用

程序需要的GB2312.txt文件

gb2utf8.php

//Program writen by sadly www.phpx.com

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));
$utf8.=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080]));
}
else
{
$gb=substr($gb,1,strlen($gb));
$utf8.=u2utf8(substr($gb,0,1));
}
}

$ret="";
for($i=0;$i $ret.=chr(substr($utf8,$i,3));

return $ret;
}

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



调用举例:通过GD输出 "中国" 两个汉字
example.php

//Header("Content-type: image/gif");
$im = imagecreate(400,300);
$bkg = ImageColorAllocate($im, 0,0,0);
$clr = ImageColorAllocate($im, 255,255,255);
$fnt = "d:/winnt/fonts/simhei.ttf";
include("gb2utf8.php");
$str = gb2utf8("中国");
ImageTTFText($im, 20, 0, 10, 20, $clr, $fnt, $str);
ImageGif($im);
ImageDestroy($im);
?>

PHP GD库处理图片的相关常用函数(二)

本节主要总结一下对于特定格式(png. jpg, gif)图片的一些处理。应用场景:处理用户的上传头像,处理上传图片…… imagecreatefromgif(); imagecreatefrom...
  • jiaobuchong
  • jiaobuchong
  • 2014年03月30日 20:51
  • 1701

php gd库扩展生成带中文字体的png图片

如何根据GD库生成带有中文的按钮图片?也可以生成验证码图片用
  • shi_yi_fei
  • shi_yi_fei
  • 2016年10月11日 16:04
  • 2051

[PHP] GD库(四):创建图像、销毁图像 imagecreate 与 imagedestroy 函数

[PHP] GD库(四):创建图像、销毁图像 imagecreate 与 imagedestroy 函数 imagecreate() 和 imagecreatetruecolor() 函数用于创建一幅...
  • kajweb
  • kajweb
  • 2017年07月27日 01:00
  • 363

php通过GD库实现验证码

首先看看实现的效果: 再来看具体实现: vertify.php
  • C_jian
  • C_jian
  • 2016年10月12日 10:21
  • 763

【PHP】GD库笔记 初探GD库的坐标

昨天在用GD库的imagettftext在图片上写字的时候,发现写字的坐标并不是很精确的按照指定的参数的位置插入字体的,一直觉得很诡异。由于GD库中很多画图操作都是以坐标为基础的,因而就花了点时间了解...
  • ohmygirl
  • ohmygirl
  • 2013年12月27日 21:50
  • 3867

[PHP] GD库(三):获取图像信息 getimagesize 函数

[PHP] GD库(三):获取图像信息 getimagesize 函数 getimagesize()函数用于获取图像尺寸,类型等信息。  imagesx()  函数用于获取图像的宽度。  images...
  • kajweb
  • kajweb
  • 2017年07月27日 01:00
  • 494

PHP利用GD库画图和生成验证码图片

首先得确定php.ini设置有没有打开GD扩展功能,测试如下 print_r(gd_info()); 如果有打印出内容如下,则说明GD功能有打开: Array ( [GD Version] =...
  • wyz365889
  • wyz365889
  • 2015年03月13日 22:33
  • 2247

利用PHP GD库生成位图

位图图像(bitmap) php-gd PHP位图生成
  • Lockey23
  • Lockey23
  • 2017年08月20日 22:33
  • 307

转:用Imagick替代php的GD库-强大~

一般用php处理图片都是使用GD库或者GD2的函数库,一般编译php环境都会搭上GD库,大多数开源程序也是用GD来处理图片的,但是它只能现实诸如调整大小、增加水印等基础功能,要想用GD来做复杂图形是非...
  • xcl_rockman
  • xcl_rockman
  • 2017年06月12日 17:09
  • 872

php使用GD库生成验证码

目录 绘图步骤 绘制验证码步骤 代码演示 绘图步骤: 1.创建画布,分配颜色,使用以下两个函数(可以在php手册GD库函数中找到): imagecreatetruecolor() imag...
  • tracy_n
  • tracy_n
  • 2017年01月03日 17:53
  • 743
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php(gd库)输出中文图像的转换函数
举报原因:
原因补充:

(最多只允许输入30个字)