PHP用imageTtfText函數在圖片上寫入漢字


https://blog.csdn.net/smstong/article/details/43955705

 

PHP繪圖,imageString()這個函數並不支持漢字的繪制。這往往會給入門者當頭一棒,不過不要着急,因為還有一個imageTtfText()函數,這個函數能繪制UTF-8編碼的字符串,當然可以繪制漢字了。

參數:

$size 字體大小,其長度單位依賴於GD庫的版本,對於GD2來說是(point)。

簡單來說,磅是一個長度度量單位,如果把一英寸等分成72份,每一份就是1磅。這里需要強調的是,磅是個絕對物理單位,與顯示設備無關。

像素沒有固定的大小,而是與分辨率相關,高分辨率的顯示器像素就很小。

然而有些東西是不存在分辨率這個概念的,如單純的位圖圖片,它的最小組成部分就是像素,本身也是通過每個像素的顏色值來定義的。把同樣的圖片顯示在不同分辨率的顯示器上,最終呈現出的大小是不同的。

以磅為單位的php繪圖,遇上像素為單位的位圖,需要進行轉換:1磅 = PPI/72 個像素

而GD2庫卻沒有提供任何讓用戶設置或者讀取這個分辨率的方法。

因此,使用imageTtfText()不可能精確控制到像素,只能自己根據推算估計。

$angle 旋轉角度。這個官網解釋的比較清楚,需要說明有兩點:一是角度單位是度而不是弧度,二是旋轉的中心點就是參數$x,$y。

$x,$y 被繪制字符串的第一個字符的基線點。單位是像素。(單位又是像素了!!!)

字體的基線,不是左上角,而取決於所使用的字體。對於宋體、楷體、黑體等常見的字體中的漢字,這個點大概位於字體的左下部分;而對於英文字母和標點符號,則各不相同。大致都在左下角附近。

$fontfile 字體文件。也就是包含trueType字體字模的文件,如楷體字體文件simkai.ttf,宋體是 simsun.ttf。這種文件的格式是有標准規范的,而且與平台無關。所以可以直接把Windows系統的字體文件拷貝到Linux下使用。

$text 要渲染的字符串。需要注意必須是UTF-8編碼的字符串。

PHP的string數據類型。雖然名為string,其實PHP語言本身並不認識各種字符編碼,它只是簡單的把string看做是動態增長的“字節”數組,例如strlen()就是返回的字節數。而我們知道除了ASCII編碼的字符和字節是相同的外,幾乎沒有其他字符編碼中的字符對應一個字節,例如一個漢字的UTF-8編碼占用3個字節。至於怎么解釋其中的字符編碼,需要專門的庫函數如iconv_strlen()。如果字符串使用字面量,那么其所在的php源文件就必須編碼為UTF-8存儲。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM