我有一個數組中的單詞列表,我可以使用imagettftext寫入PNG。PHP:imagettftext&imagettfbbox - 單詞碰撞檢測
imagettfbbox正被用來確定下一個單詞應該去的地方。
我想檢查當前的字我試圖寫的圖像將與之前的詞,已被寫入重疊(我假設imagettfbbox是要走的路?)
以下是我假設的代碼是這樣(我不能讓我圍繞如何做到這一點的頭!):
If the current word will overlap with previous word
Position current word further down an ever increasing spiral until it doesn't collide
目前我的代碼,會寫的所有字的圖像不重疊,但沒有任何角度(這是我希望它在將來處理的事情 - 沒有文字碰撞)
$handle = ImageCreate(1000, 500) or die ("Cannot Create image");
//Background Colour
$bg_color = ImageColorAllocate($handle, 0, 150, 255);
$txt_color = ImageColorAllocate($handle, 0, 0, 0);
// First we create our bounding box for the first text
$bbox = imagettfbbox($fontsize, $angle, $font, $word);
// Set X Coord
$x = ($bbox[2] - $bbox[0]);
// Set Y Coord
$y += ($bbox[7] - $bbox[1]);
// Write word to image
ImageTTFText($image, $fontsize, $angle, $x, $y, $txt_color, $font, $word);
這個代碼在你看的時候是非常靜態的,並且不會將單詞限制在圖像的大小(也是我想要的)。
任何幫助將不勝感激,我一直堅持在這個過去兩週,並真的想繼續前進!
我也嘗試過使用這種方法,它似乎仍然不適合我!你能否讓我看看你的程序做了些什麼?謝謝 – Jon
你知道嗎,我只是注意到在那段代碼中,'$ dx'和'$ dy'從來沒有使用過......它們實際上是從'$ x'和'$ y'中減去的,但是那行被註釋掉了,所以我想知道我是否有這方面的問題。這是我完整的方法;它使用了很多類變量,但它們應該是不言自明的,因爲它們應該滿足您的需求。我想你可能會對每行寫完後行間距設置增加的行感興趣。它應該爲你評論得很好。 http://pastebin.com/HrwNn875 – Demonslay335