您好,登錄后才能下訂單哦!
本文章向大家介紹使用php怎么將文本轉換成圖片并實現自動換行的基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。
php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。
代碼如下:
<?php
header ("Content-type: image/png");
mb_internal_encoding("UTF-8"); // 設置編碼
function autowrap($fontsize, $angle, $fontface, $string, $width) {
// 這幾個變量分別是 字體大小, 角度, 字體名稱, 字符串, 預設寬度
$content = "";
// 將字符串拆分成一個個單字 保存到數組 letter 中
for ($i=0;$i<mb_strlen($string);$i++) {
$letter[] = mb_substr($string, $i, 1);
}
foreach ($letter as $l) {
$teststr = $content." ".$l;
$testbox = imagettfbbox($fontsize, $angle, $fontface, $teststr);
// 判斷拼接后的字符串是否超過預設的寬度
if (($testbox[2] > $width) && ($content !== "")) {
$content .= "\n";
}
$content .= $l;
}
return $content;
}
$bg = imagecreatetruecolor(300, 290); // 創建畫布
$white = imagecolorallocate($bg, 255, 255, 255); // 創建白色
$text = "前段時間練習使用 PHP 的 GD 庫時,為了文本的自動換行糾結了很久。雖然可以通過插入 \n 實現換行,但考慮到文本中既有中文又有英文,強制限定每多少個文字就換行的效果很差。后來終于找到了一個英文下的自動換行的方法,其大概原理是將空格作為分隔符,將字符串分割為一個個單詞,然后再一個接一個地拼接在一起,判斷其長度是否超過畫布,若超過則換行再拼接,否則繼續拼接。考慮到中文需要將每個文字都拆開,所以我進行了一點修改,完整代碼如下。";
$text = autowrap(12, 0, "simsun.ttc", $text, 280); // 自動換行處理
// 若文件編碼為 GB2312 請將下行的注釋去掉
// $text = iconv("GB2312", "UTF-8", $text);
imagettftext($bg, 12, 0, 10, 30, $white, "simsun.ttc", $text);
imagepng($bg);
imagedestroy($bg);
?>
以上就是小編為大家帶來的使用php怎么將文本轉換成圖片并實現自動換行的全部內容了,希望大家多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。