溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用php怎么將文本轉(zhuǎn)換成圖片并實(shí)現(xiàn)自動(dòng)換行

發(fā)布時(shí)間:2021-02-26 14:37:35 來源:億速云 閱讀:232 作者:戴恩恩 欄目:開發(fā)技術(shù)

本文章向大家介紹使用php怎么將文本轉(zhuǎn)換成圖片并實(shí)現(xiàn)自動(dòng)換行的基本知識(shí)點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價(jià)值,需要的朋友可以參考一下。

php有什么用

php是一個(gè)嵌套的縮寫名稱,是英文超級(jí)文本預(yù)處理語言,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。

代碼如下:


<?php
header ("Content-type: image/png");
mb_internal_encoding("UTF-8"); // 設(shè)置編碼

function autowrap($fontsize, $angle, $fontface, $string, $width) {
// 這幾個(gè)變量分別是 字體大小, 角度, 字體名稱, 字符串, 預(yù)設(shè)寬度
 $content = "";

 // 將字符串拆分成一個(gè)個(gè)單字 保存到數(shù)組 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);
  // 判斷拼接后的字符串是否超過預(yù)設(shè)的寬度
  if (($testbox[2] > $width) && ($content !== "")) {
   $content .= "\n";
  }
  $content .= $l;
 }
 return $content;
}

$bg = imagecreatetruecolor(300, 290); // 創(chuàng)建畫布
$white = imagecolorallocate($bg, 255, 255, 255); // 創(chuàng)建白色
$text = "前段時(shí)間練習(xí)使用 PHP 的 GD 庫時(shí),為了文本的自動(dòng)換行糾結(jié)了很久。雖然可以通過插入 \n 實(shí)現(xiàn)換行,但考慮到文本中既有中文又有英文,強(qiáng)制限定每多少個(gè)文字就換行的效果很差。后來終于找到了一個(gè)英文下的自動(dòng)換行的方法,其大概原理是將空格作為分隔符,將字符串分割為一個(gè)個(gè)單詞,然后再一個(gè)接一個(gè)地拼接在一起,判斷其長(zhǎng)度是否超過畫布,若超過則換行再拼接,否則繼續(xù)拼接??紤]到中文需要將每個(gè)文字都拆開,所以我進(jìn)行了一點(diǎn)修改,完整代碼如下。";
$text = autowrap(12, 0, "simsun.ttc", $text, 280); // 自動(dòng)換行處理

// 若文件編碼為 GB2312 請(qǐng)將下行的注釋去掉
// $text = iconv("GB2312", "UTF-8", $text);

imagettftext($bg, 12, 0, 10, 30, $white, "simsun.ttc", $text);
imagepng($bg);
imagedestroy($bg);
?>

以上就是小編為大家?guī)淼氖褂胮hp怎么將文本轉(zhuǎn)換成圖片并實(shí)現(xiàn)自動(dòng)換行的全部?jī)?nèi)容了,希望大家多多支持億速云!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI