標題: PHP中圖形函數imagettfbbox的坐標系統
[打印本頁(yè)]
作者: feming
時(shí)間: 2003-7-6 23:05
標題: PHP中圖形函數imagettfbbox的坐標系統
imagettfbbox與imagettftext函數的坐標系統認識
--------------------------------------------------------------------------------
imagettfbbox函數的坐標系統的認識
寫(xiě) TTF 文字到圖中。
語(yǔ)法: array ImageTTFBBox(int size, int angle, string fontfile, string text);
返回值: 數組
函數種類(lèi): 圖形處理
內容說(shuō)明
本函數將 TTF (TrueType Fonts) 字型文字寫(xiě)入圖片。參數 size 為字形的尺寸;angle 為字型的角度,順時(shí)針計算,0 度為水平,也就是三點(diǎn)鐘的方向 (由左到右),90 度則為由下到上的文字;x,y 二參數為文字的坐標值 (原點(diǎn)為左下角);參數 col 為字的顏色;fontfile 為字型文件名稱(chēng),亦可是遠端的文件;text 當然就是字符串內容了。返回值為數組,包括了八個(gè)元素,頭二個(gè)分別為左下的 x、y 坐標,第三、四個(gè)為右下角的 x、y 坐標,第五、六及七、八二組分別為右上及左上的 x、y 坐標。治募注意的是欲使用本函數,系統要裝妥 GD 及 Freetype 二個(gè)函數庫。
使用范例
--------------------------------------------------------------------------------
//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);
//計算動(dòng)態(tài)圖象的高和寬
$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
--------------------------------------------------------------------------------
使用圖像分析:

自己的分析:
如果,我們按照《PHP 4完全中文手冊》的關(guān)于imagettftext函數和imagettfbbox函數的第一組返回坐標的定義來(lái)講,它們都是左下角的坐標。
那么,我覺(jué)得PHP中的imagettftext函數的字體的原點(diǎn)坐標就是在左上角了! 因為,我使用imagettftext函數返回的第一組坐標是(13,24),而用imagettfbbox函數返回的第一組坐標是(2,-1),所以,從這兩個(gè)坐標數值上,我們就可以判斷出這兩個(gè)函數要么有不同的坐標系統(imagettftext函數的原點(diǎn)坐標在左上角,而imagettfbbox函數的原點(diǎn)坐標在左下腳),要么就是《PHP 4完全中文手冊》的說(shuō)法是錯誤的!為了讓我們使用php中的GD庫調用的TTF字體能按照,我們的意圖顯示在一個(gè)動(dòng)態(tài)生成的圖象上,我們要計算出imagettftext函數的字體的大小和圖象的大小,而最終確定我們的字體的顯示位置。
作者: macleo
時(shí)間: 2003-7-7 23:24
標題: PHP中圖形函數imagettfbbox的坐標系統
呵呵!我就是macleo!呵呵!
作者: wubai
時(shí)間: 2003-7-8 08:46
標題: PHP中圖形函數imagettfbbox的坐標系統
php中的Image functions比較爛,
盡量少用些吧
作者: macleo
時(shí)間: 2003-7-8 21:43
標題: PHP中圖形函數imagettfbbox的坐標系統
QUOTE:
原帖由 "wubai" 發(fā)表:
php中的Image functions比較爛,
盡量少用些吧
怎么爛呢?
作者: yocc
時(shí)間: 2003-7-9 17:02
標題: PHP中圖形函數imagettfbbox的坐標系統
頂~~非常的好,最近我正畫(huà)圖幫助非淺!謝謝!
php的image 功能非常得好,其他的語(yǔ)言關(guān)于作圖的我沒(méi)用過(guò),但是這個(gè)功能絕對強?。?!
不知道我說(shuō)的對不對!請賜教
作者: 豬頭騎士
時(shí)間: 2003-7-9 17:09
標題: PHP中圖形函數imagettfbbox的坐標系統
畫(huà)圖功能的強弱是gd函數庫的功能
和php應該沒(méi)有多大的關(guān)系吧
php只是調用了這個(gè)模塊吧
作者: yocc
時(shí)間: 2003-7-9 18:21
標題: PHP中圖形函數imagettfbbox的坐標系統
我的意思就是gd函數的功能很強,而且簡(jiǎn)單,非常容易理解,我還是很喜歡的!
| http://bbs.chinaunix.net/ |