免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2824 | 回复: 4
打印 上一主题 下一主题

[FreeBSD] freebsd+apache1.3.27+php4.3.1+gd2.0+freetype2.0 中文支持 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-08 08:52 |只看该作者 |倒序浏览
最近配置了FREEBSD+APACHE+PHP4.3.1+GD2.0+FREETYPE(不知道版本)

编译配置如下:

'./configure' '--with-apxs=/usr/local/sbin/apxs' '--with-config-file-path=/usr/local/etc' '--enable-versioning' '--with-regex=system' '--with-gd' '--with-ttf' '--enable-gd-native-ttf' '--enable-gd-imgstrttf' '--with-freetype-dir=/usr/local/include/freetype2/freetype' '--with-zlib' '--with-mysql=/usr/local' '--prefix=/usr/local' 'i386-portbld-freebsd4.7'

配置完成后,PHPINFO()显示如下:
gd
GD Support enabled
GD Version bundled (2.0 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
PNG Support enabled
WBMP Support enabled

但是在用ImageTTFText()提取汉字时还是不可以用,我用了一个GB2UTF8的转换程序!!

具体如下:


//gb2utf8.php字符集转换代码!
<?
//Program writen by sadly www.phpx.com
//modified by agun 2000/6/20
//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);

$ret="";
while($gb!=""{
$utf8="";
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]));
for($i=0;$i<strlen($utf;$i+=3) $ret.=chr(substr($utf8,$i,3));
}else{
$this=substr($gb,0,1);
$gb=substr($gb,1,strlen($gb));
$ret.=utf8_encode($this);
}
}
return $ret;
}

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


//生成图片代码
<?
Header("Content-type: image/png";
$im = imagecreate(300,150);
$bkg = ImageColorAllocate($im, 0,0,0);
$clr = ImageColorAllocate($im, 255,255,255);
$fnt = "/usr/local/share/fonts/arial.ttf";
include("gb2utf8.php";
//$str = gb2utf8("中国阿棍";
$str = "中国阿棍";
ImageTTFText($im, 30, 0, 50,50, $clr, $fnt, $str);
imagepng($im);
//ImageGif($im);
ImageDestroy($im);
?>;

主要是PHPINFO()中的GD段显示成:"FreeType Linkage with freetype "
与我看到的其他资料里介绍的不一样!其他的是:"FreeType Linkage with TTF library "
但是其他资料里介绍的是GD1.8

不知道我是否已经成功安装了TREETYPE的TTF功能呢?

如果是,问题又出在哪里呢?请各位高手予以指教!

论坛徽章:
0
2 [报告]
发表于 2003-04-08 10:27 |只看该作者

freebsd+apache1.3.27+php4.3.1+gd2.0+freetype2.0 中文支持

http://freebsd.sinica.edu.tw/zh-tut/php-imagettftext.html

论坛徽章:
0
3 [报告]
发表于 2003-04-08 11:14 |只看该作者

freebsd+apache1.3.27+php4.3.1+gd2.0+freetype2.0 中文支持

按照他给的原码改了,可是没有用呀!!

论坛徽章:
0
4 [报告]
发表于 2003-04-08 18:19 |只看该作者

freebsd+apache1.3.27+php4.3.1+gd2.0+freetype2.0 中文支持

说得太多了,建议看handbook,99页,上面有。

论坛徽章:
0
5 [报告]
发表于 2003-04-08 18:19 |只看该作者

freebsd+apache1.3.27+php4.3.1+gd2.0+freetype2.0 中文支持

终于搞定了!

原来还需要FREEBSD下的字体文件,哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP