我正在訓練我的PHP技能來生成圖像。我只需要一件不起作用的東西。我不認爲在我想要的方式上是可能的,但應該有另一種方式。我已經有代碼是這樣的:PHP imagettftext部分大膽
<?php
$textSize = 10;
$text = addslashes("Wietse: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed malesuada aliquet dolor, vitae tristique lectus imperdiet nec. Pellentesque et.");
$maxWidth = 448;
//Create image
$im = imagecreate(468, 60);
// Black background and White text
$bg = imagecolorallocate($im, 0, 0, 0);
$textColor = imagecolorallocate($im, 255, 255, 255);
// Split in multiple lines
$words = explode(' ', $text);
$lines = array();
$line = "";
foreach ($words as $word) {
$box = imagettfbbox($textSize, 0, './arial.ttf', $line . $word);
$width = $box[4] - $box[0];
if($width > $maxWidth) {
$line = trim($line);
$line .= "\n";
}
$line .= $word . ' ';
}
// Write the text in the image
imagettftext($im, $textSize, 0, 10, $textSize + 10, $textColor, './arial.ttf', $line); // write text to image
// Output the image
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
導致這個形象:
它工作正常,但我的名字,Wietse,應該大膽。我認爲不可能以簡單的方式做到這一點,但它應該是可能的。我可以添加另一個帶有粗體Arial字體的imagettftext()
,但是Lorum ipsum文本應該在名稱旁邊開始,第二行應該繼續與名稱相同的X座標。就像現在一樣。 我也有另一個願望,但我認爲這太難了,因爲這個文本可以有任何位置。但是如果有人知道如何做到這一點,那他很棒。這是鏈接(http://www.google.com)有一個下劃線。我不認爲我需要告知更多信息。
謝謝你的目的!
的代碼不給上述輸出 – h2O 2013-10-08 14:33:50
如果任何人遇到這種解決方案;解決方案是使用不同的'.ttf'文件。由於斜體/粗體/穿透/下劃線實際上是完全不同的字體,所以很容易找到所需字體的粗體/斜體版本。看看OP如何使用'imagettfbbox($ textSize,0,'./arialbd.ttf',$ usernameTotal);'爲粗體和'imagettfbbox($ textSize,0,'./arial.ttf',$ line。$ word );'爲文本的其餘部分? 2個不同的'.ttf'文件 – IsThisJavascript 2018-02-09 14:34:28