看板 PHP 關於我們 聯絡資訊
※ 引述《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