亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用PHP怎么在創建的圖像中繪制文字

發布時間:2020-12-11 16:52:52 來源:億速云 閱讀:204 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關利用PHP怎么在創建的圖像中繪制文字,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在圖像中顯示的文字也需要按坐標位置畫上去。在PHP中不僅支持比較多的字體庫,而且提供了非常靈活的文字繪制方法。例如,在圖中繪制縮放、傾斜、旋轉的文字等。可以使用imageString()、imageStringUP()或imageChar()等函數使用的字體文字繪制到圖像中。這些函數的原型如下所示:

bool imagestring(resource $image,int $font,int $x ,int $y,string $s,int $color)              //水平地畫一行字符串
bool imagestringup(resource $image,int $font,int $x ,int $y,string $s,int $color)                 //垂直地畫一行字符串
bool imagechar(resource $image,int $font,int $x ,int $y,char $c,int $color)                //水平地畫一個字符
bool imagecharup(resource $image,int $font,int $x ,int $y,char $c,int $color)                 //垂直地畫一個字符

在上面列出來的四個函數中,前兩個函數imageString()和imageStringUP()分別用來向圖像中水平和垂直輸出一行字符串,而后兩個函數imageChar()和imageCharUP()分別用來向圖像中水平和垂直輸出一個字符。雖然這四個函數有所差異,但調用方式類似。它們都是在$image圖像中繪制由第五個參數指定的字符,繪制的位置都是從坐標($x,$y)開始輸出。如果是水平地面畫一行字符串則是從左向右輸出,而垂直地畫一行字符串則是從下而上輸出。這些函數都可以通過最后一個參數$color給出文字的顏色。第二個參數$font則給出了文字字體標識符,其值為整數1、2、3、4或5,則是使用內置的字體,數字越大則輸出的文字尺寸就越大。下面是在一個圖像中輸出文字的示例:

<?php 
$im = imagecreate(150, 150);
 
$bg = imagecolorallocate($im, 255, 255, 255); //設置畫布的背景為白色
$black = imagecolorallocate($im, 0, 0, 0); //設置一個顏色變量為黑色
 
$string = "LAMPBrother"; //在圖像中輸出的字符
 
imagestring($im, 3, 28, 70, $string, $black); //水平的將字符串輸出到圖像中
imagestringup($im, 3, 59, 115, $string, $black); //垂直由下而上輸到圖像中
for($i=0,$j=strlen($string);$i<strlen($string);$i++,$j--){ //循環單個字符輸出到圖像中
imagechar($im, 3, 10*($i+1),10*($j+2),$string[$i],$black); //向下傾斜輸出每個字符
imagecharup($im, 3, 10*($i+1),10*($j+2),$string[$i],$black); //向上傾斜輸出每個字符
}
 
header('Content-type:image/png'); 
imagepng($im);
?>

利用PHP怎么在創建的圖像中繪制文字

通過上面介紹的四個函數輸出內置的字體外,還可以使用imageTtfText()函數,輸出一種可以縮放的與設備無關的TrueType字體。TrueType是用數學函數描述字體輪廓外形,即可以用做打印字體,又可以用作屏幕顯示,各種操作系統都可以兼容這種字體。由于它是由指令對字形進行描述,因此它與分辨率無關,輸出時總是按照打印機的分辨率輸出。無論放大或是縮小,字體總是光滑的,不會有鋸齒出現。例如在Windows系統中,字體庫所在的文件夾C:\WINDOWS\Fonts下,對TrueType字體都有標注,如simsun.ttf為TrueType字體中的“宋體”。imageTtfText()函數的原型如下所示:

array imagettftext(resource $image,float $size ,float $angle,int $x,int $y,int $color ,string $fontfile,string $text)

該函數需要多個參數,其中參數$image需要提供一個圖像資源。參數$size用來設置字體大小,根據GD庫版本不同,應該以像素大小指定(GD1)或點大小(GD2)。參數$angle是角度制表示的角度,0&ordm;為從左向右讀的文本,更高數值表示逆時針旋轉。例如90&ordm;表示從下向上讀的文本。并由($x,$y)兩個參數所表示的坐標,定義了一個字符的基本點,大概是字符的左下角。而這和imagestring()函數有所不同,其($x,$y)坐標定義了第一個字符的左上角。參數$color指定顏色索引。使用負的顏色索引值具有關閉防鋸齒的效果。參見$fontfile是想要使用的TrueType字體的路徑。根據PHP所使用的GD庫的不同,當fontfil沒有以“/”開頭時則“.ttf”將被加到文件名之后,并且會在庫定義字體路徑中嘗試搜索該文件名。最后一個參數$text指定需要輸出的文本字符串,可以包含十進制數字化字符表示(形式為:&#8364)來訪問字體中超過位置127的字符。UTF-8編碼的字符串可以直接傳遞。如果字符串中使用的某個字符不被字體支持,一個空心矩形將替換該字符。

imagettftext()函數返回一個含有8個單元的數組,表示了文本外框的四個角,順序為左下角,右下角,右上角,左上角。這些點是相對于文本的而和角度無關,因此“左上角”指的是以水瓶方向看文字時其左上角。我們通過在下例中的腳本,生成一個白色的400X30像素的PNG圖片,其中有黑色(帶灰色陰影)“宋體”字體寫的“回憶經典!”代碼如下所示:

<?php
$im = imagecreatetruecolor(400, 30);            //創建400 30像素大小的畫布
 
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
 
imagefilledrectangle($im, 0, 0, 399, 29, $white);       //輸出一個使用白色填充的矩形作為背景
 
//如果有中文輸出,需要將其轉碼,轉換為UTF-8的字符串才可以直接傳遞
$text = iconv("GB2312", "UTF-8", "回憶經典");
 
//設定字體,將系統中與simsun.ttc對應的字體復制到當前目錄下
$font = 'simsun.ttc';
 
imagettftext($im, 20, 0, 12, 21, $grey, $font, $text);      //輸出一個灰色的字符串作為陰影
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);         //在陰影上輸出一個黑色的字符串
 
header("Content-type: image/png");
imagepng($im);
 
imagedestroy($im);
 
?>

上述就是小編為大家分享的利用PHP怎么在創建的圖像中繪制文字了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

蓝田县| 济源市| 武威市| 康乐县| 霍林郭勒市| 大同县| 鄂温| 富阳市| 丰原市| 新建县| 新民市| 崇信县| 榆中县| 息烽县| 南宫市| 泰顺县| 荆州市| 齐河县| 丰镇市| 兴隆县| 本溪市| 漾濞| 汽车| 丰台区| 宕昌县| 雷山县| 德保县| 洞口县| 绥棱县| 刚察县| 威海市| 商都县| 县级市| 唐河县| 伊吾县| 监利县| 祁连县| 大石桥市| 葵青区| 长泰县| 高雄市|