※ 引述《chan15 (ChaN)》之銘言:
: demo: http://goo.gl/LTyj1
: code: http://pastie.org/private/tx2jxjapwsh2vqzvswxkq
: 目前客戶有一個需求就是類似漫畫上字功能
: 中文字體我選用了微軟正黑體,不知道為什麼選細明體字數越多間距會越寬
: 因為會有字體大小的選項,而 Y 座標似乎不是以頂點當作開頭
: 所以請教問一下他的 Y 座標怎麼算出來才能讓不同 pt 的字出現的頂點位置相同呢
: ※ 編輯: chan15 來自: 1.34.239.151 (07/08 18:08)
: 推 liaosankai:我建議的作法是,先將文字圖轉出為一張"tmp.png" 07/09 07:44
: → liaosankai:再透過浮水印的方法合成兩張圖片 07/09 07:44
抱歉,我剛看了你的 code 發現你的確也是合成的。
我想你主要的問題,應該是你忘記先計算文字的畫布大小
你可以透過下面的方法,取得文字預計會佔的空間大小。
// 計算文字大小
$rect = imagettfbbox($size, 0, $font, $text);
$minX = min(array($rect[0], $rect[2], $rect[4], $rect[6]));
$maxX = max(array($rect[0], $rect[2], $rect[4], $rect[6]));
$minY = min(array($rect[1], $rect[3], $rect[5], $rect[7]));
$maxY = max(array($rect[1], $rect[3], $rect[5], $rect[7]));
$box = array(
"left" => abs($minX) ,
"top" => abs($minY),
"width" => $maxX - $minX,
"height" => $maxY - $minY
);
現在你可以使用 $box 資訊,再對你所要合成的圖片調整位置。
詳細可以參考官方的說明:http://goo.gl/gpDWj
--
歡迎來我的網誌看看
@ http://blog.liaosankai.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.203.54.193