中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > PHP > PHP综合
PHP中图形函数imagettfbbox的坐标系统
作者:未知 时间:2005-09-13 19:41 出处:ChinaUnix.net 责编:chinaitpower
              摘要:PHP中图形函数imagettfbbox的坐标系统

imagettfbbox与imagettftext函数的坐标系统认识 
--------------------------------------------------------------------------------
 




imagettfbbox函数的坐标系统的认识
写 TTF 文字到图中。

语法: array ImageTTFBBox(int size, int angle, string fontfile, string text); 

返回值: 数组

函数种类: 图形处理


 
 
内容说明 


本函数将 TTF (TrueType Fonts) 字型文字写入图片。参数 size 为字形的尺寸;angle 为字型的角度,顺时针计算,0 度为水平,也就是三点钟的方向 (由左到右),90 度则为由下到上的文字;x,y 二参数为文字的坐标值 (原点为左下角);参数 col 为字的颜色;fontfile 为字型文件名称,亦可是远端的文件;text 当然就是字符串内容了。返回值为数组,包括了八个元素,头二个分别为左下的 x、y 坐标,第三、四个为右下角的 x、y 坐标,第五、六及七、八二组分别为右上及左上的 x、y 坐标。治募注意的是欲使用本函数,系统要装妥 GD 及 Freetype 二个函数库。


使用范例



--------------------------------------------------------------------------------
//Header("Content-type:image/png");
//$im = imagecreate(400,30);
//$black = ImageColorAllocate($im, 0,0,0);
//$white = ImageColorAllocate($im, 255,255,255);
$fontarea = ImageTTFBBox(20,0,"font/arial.ttf","I am NUMBER ONE !!");//返回值赋给$fontsize
//$fontindex=sizeof($fontsize);//获得数组大小
//$string=NULL;
while ( list( $key, $val  = each( $fontarea   
{
echo "$key => $val
";
}
//ImageTTFText($im, 20, 0, 10, 24, $white, "font/arial.ttf", "I am NUMBER ONE !!");
//Imagepng($im);
//ImageDestroy($im);
//计算动态图象的高和宽
$font_width = $fontarea[2]-$fontarea[0];//256
$font_height = $fontarea[1]-$fontarea[7];//19
$images_width = $font_width+10;//定义生成计数器图象宽度
//$images_height=15;//定义生成计数器图象高度
$images_height = $font_height+10;
$font_location_x =5;
$font_location_y = ($images_height-$font_height)/2+$fontarea[7];
echo "images_width=$images_width
images_height=$images_height
";
echo "font_width=$font_width
font_height=$font_height
";
echo "font_location_x=$font_location_x
font_location_y=$font_location_y
";
?>

--------------------------------------------------------------------------------

使用范例的返回内容:

0 => 2
1 => -1
2 => 258
3 => -1
4 => 258
5 => -20
6 => 2
7 => -20
images_width=266
images_height=29
font_width=256
font_height=19
font_location_x=5
font_location_y=-15



--------------------------------------------------------------------------------

使用图像分析:

[img:d6855fa6bf]http://www.freewebs.com/macleo/images/php001.png[/img:d6855fa6bf]

自己的分析:

如果,我们按照《PHP 4完全中文手册》的关于imagettftext函数和imagettfbbox函数的第一组返回坐标的定义来讲,它们都是左下角的坐标。
那么,我觉得PHP中的imagettftext函数的字体的原点坐标就是在左上角了! 因为,我使用imagettftext函数返回的第一组坐标是(13,24),而用imagettfbbox函数返回的第一组坐标是(2,-1),所以,从这两个坐标数值上,我们就可以判断出这两个函数要么有不同的坐标系统(imagettftext函数的原点坐标在左上角,而imagettfbbox函数的原点坐标在左下脚),要么就是《PHP 4完全中文手册》的说法是错误的!为了让我们使用php中的GD库调用的TTF字体能按照,我们的意图显示在一个动态生成的图象上,我们要计算出imagettftext函数的字体的大小和图象的大小,而最终确定我们的字体的显示位置。

 macleo 回复于:2003-07-07 23:24:52
呵呵!我就是macleo!呵呵!

 wubai 回复于:2003-07-08 08:46:12
php中的Image functions比较烂,


尽量少用些吧

 macleo 回复于:2003-07-08 21:43:52
[quote:dd8d2d30f7="wubai"]php中的Image functions比较烂,


尽量少用些吧[/quote:dd8d2d30f7]     

怎么烂呢?   

 yocc 回复于:2003-07-09 17:02:24
顶~~非常的好,最近我正画图帮助非浅!谢谢!

php的image 功能非常得好,其他的语言关于作图的我没用过,但是这个功能绝对强!!!
不知道我说的对不对!请赐教

 猪头骑士 回复于:2003-07-09 17:09:30
画图功能的强弱是gd函数库的功能
和php应该没有多大的关系吧
php只是调用了这个模块吧

 yocc 回复于:2003-07-09 18:21:27
我的意思就是gd函数的功能很强,而且简单,非常容易理解,我还是很喜欢的!

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有