婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP的imageTtfText()函數(shù)深入詳解

PHP的imageTtfText()函數(shù)深入詳解

熱門標(biāo)簽:釘釘打卡地圖標(biāo)注 福州人工外呼系統(tǒng)哪家強(qiáng) 衡水外呼系統(tǒng)平臺 地圖標(biāo)注平臺怎么給錢注冊 注冊400電話申請 新河科技智能外呼系統(tǒng)怎么樣 百度商鋪地圖標(biāo)注 常州地圖標(biāo)注服務(wù)商 安裝電銷外呼系統(tǒng)

圖片處理,是許多程序的功能之一;而文字渲染則是繪圖的基本組成部分。PHP通過很多擴(kuò)展庫來支持圖片的處理,最常用的還是GD庫,通過一系列imagexxx()函數(shù)來提供繪圖功能。本文專注于非常細(xì)小的一點(diǎn):繪制文字。熟悉Win32的人都知道,TextOut()就可以輕松顯示任何文字了,然而到了PHP的世界里,有些事情并不輕松。

1 詳細(xì)解釋imageTtfText()函數(shù)

對于PHP繪圖初學(xué)者,首先遇到的一個問題就是,imageString()這個函數(shù)并不支持漢字的繪制。這往往會給入門者當(dāng)頭一棒,不過不要著急,因?yàn)檫€有一個imageTtfText()函數(shù),這個函數(shù)能繪制UTF-8編碼的字符串,當(dāng)然可以繪制漢字了。然而使用它并不十分簡單。先來看看其原型聲明:

一共有8個參數(shù),缺一不可,而且官方文檔這些參數(shù)的解釋并不透徹,這里筆者盡力做更詳細(xì)清晰的解釋:

(1)$image 這個是畫布資源,無需再解釋;

(2)$size,官方文檔的解釋是,字體大小,其長度單位依賴于GD庫的版本,對于GD1來說是像素,對于GD2來說是磅(point)。現(xiàn)在一般都是GD2了,那么這個磅究竟是什么意思呢?這涉及到字體設(shè)計(jì)的基本知識。

簡單來說,磅是一個長度度量單位,如果把一英寸等分成72份,每一份就是1磅。這里需要強(qiáng)調(diào)的是,磅是個絕對物理單位,與顯示設(shè)備無關(guān)。

而像素呢?像素沒有固定的大小,而是與分辨率相關(guān),高分辨率的顯示器像素就很小,如iphone視網(wǎng)膜屏上一個像素的大小要比普通LCD顯示器的像素小很多。然而有些東西是不存在分辨率這個概念的,如單純的位圖圖片,它的最小組成部分就是像素,本身也是通過每個像素的顏色值來定義的。把同樣的圖片顯示在不同分辨率的顯示器上,最終呈現(xiàn)出的大小是不同的。

操作位圖時,以像素位單位最精確合理,那么使用GD2庫的時候,如何繪制大小為20像素的字呢?也就是多少磅才能等于20個像素呢?這必須通過分辨率才能計(jì)算出來,而問題是位圖本身并沒有分辨率的概念。

現(xiàn)在把問題返回來,如果給定$size=20磅,那么imageTtfText()繪制完成時,究竟會占用多少像素。無論如何,imageTtfText()最終還是要把文字繪制落實(shí)到具體的位圖像素上。

1磅 = PPI/72 個像素

這個問題確實(shí)非常棘手,此函數(shù)內(nèi)部必然會使用某個分辨率PPI來計(jì)算被渲染的像素區(qū)域。而GD2庫卻沒有提供任何讓用戶設(shè)置或者讀取這個分辨率的方法。那么,我們只能動手測試了。使用不同的磅值繪制文字,然后測量文字占據(jù)的像素,通過公式:

PPI = (72*像素?cái)?shù))/磅值。實(shí)驗(yàn)得出的結(jié)論是:

1磅==>4像素, PPI=2882磅==>5像素, PPI=1803磅==>7像素, PPI=1684磅==>8像素, PPI=1445磅==>9像素, PPI=129.66磅==>10像素, PPI=1207磅==>11像素, PPI=113.142857142868磅==>12像素, PPI=1089磅==>14像素, PPI=11210磅==>15像素, PPI=10811磅==>16像素, PPI=104.7272727272712磅==>17像素, PPI=10213磅==>18像素, PPI=99.69230769230814磅==>19像素, PPI=97.71428571428615磅==>21像素, PPI=100.816磅==>22像素, PPI=9917磅==>23像素, PPI=97.41176470588218磅==>25像素, PPI=10019磅==>26像素, PPI=98.52631578947420磅==>27像素, PPI=97.221磅==>28像素, PPI=9622磅==>29像素, PPI=94.90909090909123磅==>30像素, PPI=93.91304347826124磅==>32像素, PPI=9625磅==>33像素, PPI=95.0426磅==>34像素, PPI=94.15384615384627磅==>35像素, PPI=93.33333333333328磅==>36像素, PPI=92.57142857142929磅==>38像素, PPI=94.34482758620730磅==>39像素, PPI=93.631磅==>40像素, PPI=92.90322580645232磅==>41像素, PPI=92.2533磅==>43像素, PPI=93.81818181818234磅==>44像素, PPI=93.17647058823535磅==>46像素, PPI=94.62857142857136磅==>47像素, PPI=9437磅==>48像素, PPI=93.40540540540538磅==>48像素, PPI=90.94736842105339磅==>50像素, PPI=92.30769230769240磅==>51像素, PPI=91.841磅==>52像素, PPI=91.31707317073242磅==>53像素, PPI=90.85714285714343磅==>55像素, PPI=92.09302325581444磅==>56像素, PPI=91.63636363636445磅==>57像素, PPI=91.246磅==>58像素, PPI=90.78260869565247磅==>60像素, PPI=91.91489361702148磅==>62像素, PPI=9349磅==>63像素, PPI=92.57142857142950磅==>63像素, PPI=90.7251磅==>64像素, PPI=90.35294117647152磅==>67像素, PPI=92.76923076923153磅==>68像素, PPI=92.37735849056654磅==>69像素, PPI=9255磅==>70像素, PPI=91.63636363636456磅==>71像素, PPI=91.28571428571457磅==>72像素, PPI=90.94736842105358磅==>74像素, PPI=91.86206896551759磅==>75像素, PPI=91.52542372881460磅==>76像素, PPI=91.261磅==>77像素, PPI=90.88524590163962磅==>78像素, PPI=90.5806451612963磅==>79像素, PPI=90.28571428571464磅==>81像素, PPI=91.12565磅==>83像素, PPI=91.93846153846266磅==>84像素, PPI=91.63636363636467磅==>85像素, PPI=91.3432835820968磅==>86像素, PPI=91.05882352941269磅==>86像素, PPI=89.73913043478370磅==>88像素, PPI=90.51428571428671磅==>90像素, PPI=91.26760563380372磅==>91像素, PPI=9173磅==>92像素, PPI=90.73972602739774磅==>93像素, PPI=90.486486486486

可見當(dāng)大于46磅時,PPI穩(wěn)定在90,而小于46磅時,PPI一直在微變。

所以,如果你想繪制20個像素大小的字體,那么必須設(shè)置$size參數(shù)為:14.5磅。

另外需要注意的是,$size并不完全對應(yīng)字體的顯示大小,因?yàn)橥瑯拥?size,不同的字符占據(jù)的空間并不是一樣的。例如,漢字“國”的寬度會比數(shù)字1的寬度大得多,對于標(biāo)點(diǎn)符號,則更是這樣,半角和全角符號也不同。

總之,使用imageTtfText()不可能精確控制到像素級別,只能大概。這也算是矢量字體的一個小缺陷。

(3)$angle是旋轉(zhuǎn)角度。這個官網(wǎng)解釋的比較清楚,需要說明有兩點(diǎn):一是角度單位是度而不是弧度,二是旋轉(zhuǎn)的中心點(diǎn)就是參數(shù)$x,$y。

(4)(5)$x,$y 被繪制字符串的第一個字符的基線點(diǎn)。單位是像素。這里涉及到字體設(shè)計(jì)的基本知識--基線。這個點(diǎn)絕對不是左上角,而具體是什么取決于所使用的字體是如何設(shè)計(jì)的。對于宋體、楷體、黑體等常見的字體中的漢字,這個點(diǎn)大概位于字體的左下部分;而對于英文字母和標(biāo)點(diǎn)符號,則各不相同。如下圖:

(6)$color 字體的顏色,不多解釋。

(7)$fontfile 字體文件。也就是包含trueType字體字模的文件,如楷體字體文件simkai.ttf。這種文件的格式是有標(biāo)準(zhǔn)規(guī)范的,而且與平臺無關(guān)。所以可以直接把Windows系統(tǒng)的字體文件拷貝到Linux下使用。

(8)$text 要渲染的字符串。需要注意必須是UTF-8編碼的字符串。說到字符串不得不提PHP的string數(shù)據(jù)類型。雖然名為string,其實(shí)PHP語言本身并不認(rèn)識各種字符編碼,它只是簡單的把string看做是動態(tài)增長的“字節(jié)”數(shù)組,例如strlen()就是返回的字節(jié)數(shù)。而我們知道除了ASCII編碼的字符和字節(jié)是相同的外,幾乎沒有其他字符編碼中的字符對應(yīng)一個字節(jié),例如一個漢字的UTF-8編碼占用3個字節(jié)。至于怎么解釋其中的字符編碼,需要專門的庫函數(shù)如iconv_strlen()。如果字符串使用字面量,那么其所在的php源文件就必須編碼為UTF-8存儲。

2 幾個小技巧

(1)字處理軟件的復(fù)雜之處

盡管這個函數(shù)可以顯示字符串,但是針對于字處理軟件(如Word)來說,并不能使用。因?yàn)橐坏┥婕暗綄ζ涞膯栴},此函數(shù)即不能使用了。因?yàn)樗荒芴幚碜珠g距,當(dāng)然也就無法實(shí)現(xiàn)分散對齊等功能。再加上每行的“避首尾”(如,不能位于行首)要求,做好字處理并不簡單。

變通的方式是,首先通過復(fù)雜的公式計(jì)算出各個字符的準(zhǔn)確位置,然后針對每一個字符調(diào)用此函數(shù)。

(2)如何顯示加粗字體

對于本身就有粗體的字體文件來說,這不存在任何問題,只要使用粗體文件就可以了。問題是很多字體文件并沒有針對粗體單獨(dú)設(shè)計(jì)。GD庫中也沒有一個能加粗顯示的函數(shù)。其解決方法說出來有點(diǎn)可笑,就是針對每個字符繪制兩次,第二次繪制時的$x會第一次的$x多1個像素即可。

到此這篇關(guān)于PHP的imageTtfText()函數(shù)深入詳解的文章就介紹到這了,更多相關(guān)PHP的imageTtfText()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • PHP的命令行擴(kuò)展Readline相關(guān)函數(shù)的使用
  • PHP中垃圾回收相關(guān)函數(shù)的使用
  • PHP中斷言函數(shù)的使用詳解
  • 詳解各種PHP函數(shù)漏洞
  • PHP危險(xiǎn)函數(shù)禁用深入詳解
  • PHP執(zhí)行系統(tǒng)命令函數(shù)實(shí)例講解
  • PHP之header函數(shù)詳解
  • php中sort函數(shù)排序知識點(diǎn)總結(jié)
  • php中rsort函數(shù)實(shí)例用法
  • 淺談定義一個PHP函數(shù)

標(biāo)簽:克拉瑪依 柳州 鷹潭 遼陽 白城 鶴崗 唐山 六安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP的imageTtfText()函數(shù)深入詳解》,本文關(guān)鍵詞  PHP,的,imageTtfText,函數(shù),深入,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP的imageTtfText()函數(shù)深入詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP的imageTtfText()函數(shù)深入詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲成a人片在线不卡一二三区| 欧美久久久影院| 久久精品国产色蜜蜜麻豆| 一区二区三区91| 亚洲精品一卡二卡| 亚洲欧美日韩国产一区二区三区| 亚洲色欲色欲www| 亚洲三级免费电影| 亚洲精品成人在线| 一级做a爱片久久| 亚洲一区二区三区四区五区黄| 亚洲色图在线播放| 亚洲国产中文字幕| 蜜臀av性久久久久蜜臀aⅴ四虎| 日本v片在线高清不卡在线观看| 日本美女视频一区二区| 狠狠色丁香久久婷婷综合_中| 狠狠色狠狠色综合| 91伊人久久大香线蕉| 欧美日韩另类一区| 欧美日韩二区三区| 久久综合色婷婷| 亚洲精品视频自拍| 视频一区二区三区在线| 国产在线国偷精品产拍免费yy| 国产成人av一区二区三区在线 | 国产91对白在线观看九色| 国产+成+人+亚洲欧洲自线| 99精品视频中文字幕| 91精品国产综合久久久蜜臀粉嫩| 日韩精品一区二区三区中文不卡| 久久精品一区二区三区av| 一区在线观看免费| 免费在线观看成人| 91日韩在线专区| 日韩精品中文字幕在线不卡尤物 | 欧美综合视频在线观看| 欧美成人女星排名| 国产精品国产三级国产普通话三级| 亚洲欧美日韩久久精品| 精品中文字幕一区二区小辣椒| 成人18精品视频| 精品美女一区二区| 亚洲成人777| 粗大黑人巨茎大战欧美成人| 欧美一级黄色片| 亚洲免费观看高清在线观看| 蜜桃av噜噜一区二区三区小说| av在线综合网| 精品日韩在线一区| 亚洲不卡av一区二区三区| 成人av免费在线观看| 精品国产免费人成在线观看| 午夜精品福利在线| 一本高清dvd不卡在线观看 | 亚洲成人av电影在线| 成人app软件下载大全免费| 欧美成人国产一区二区| 亚洲国产成人精品视频| 99视频有精品| 国产精品久久久久影院| 韩国成人在线视频| 日韩视频一区二区| 丝袜亚洲另类欧美综合| 欧美三级电影网站| 亚洲最大成人综合| 一本色道a无线码一区v| 综合欧美亚洲日本| 色悠久久久久综合欧美99| 中文字幕中文字幕中文字幕亚洲无线| 韩国成人福利片在线播放| 日韩一级精品视频在线观看| 日韩精品亚洲专区| 欧美群妇大交群中文字幕| 亚洲高清不卡在线观看| 欧美日韩三级在线| 免费在线观看精品| 欧美va亚洲va香蕉在线| 国产乱对白刺激视频不卡| 精品粉嫩超白一线天av| 国产揄拍国内精品对白| 国产亚洲欧美日韩在线一区| 丰满白嫩尤物一区二区| 中文字幕一区免费在线观看| 91福利资源站| 日本不卡1234视频| 精品国产1区2区3区| 成人精品国产福利| 亚洲精品老司机| 欧美人伦禁忌dvd放荡欲情| 免费看日韩a级影片| 久久色中文字幕| 91在线一区二区三区| 亚洲一区av在线| 欧美成va人片在线观看| 国产黑丝在线一区二区三区| 亚洲啪啪综合av一区二区三区| 欧美色综合天天久久综合精品| 婷婷开心激情综合| 久久久精品日韩欧美| 色av综合在线| 久久精品国产亚洲高清剧情介绍| 欧美激情一区二区三区| 色婷婷综合久久久中文字幕| 免费观看成人av| 亚洲免费av网站| 精品久久久久久久人人人人传媒| av资源站一区| 九色综合狠狠综合久久| 自拍偷在线精品自拍偷无码专区 | 国产精品123| 亚洲自拍偷拍麻豆| 中文在线资源观看网站视频免费不卡| 色狠狠一区二区三区香蕉| 日韩精品三区四区| 最好看的中文字幕久久| 日韩欧美亚洲国产精品字幕久久久| 99精品黄色片免费大全| 精品一区二区三区免费视频| 一区二区三区**美女毛片| 久久久久亚洲综合| 欧美一卡二卡三卡| 91福利小视频| 97精品国产露脸对白| 狠狠狠色丁香婷婷综合激情 | 精品国产91久久久久久久妲己| 91视频在线看| 粉嫩aⅴ一区二区三区四区 | 在线观看亚洲专区| 国产河南妇女毛片精品久久久| 日韩专区在线视频| 一区二区三区日韩精品视频| 国产欧美日韩中文久久| 精品毛片乱码1区2区3区| 精品视频在线免费| 色8久久精品久久久久久蜜| 成人深夜福利app| 国产成人无遮挡在线视频| 激情综合五月婷婷| 美国一区二区三区在线播放| 亚洲成av人综合在线观看| 亚洲精品欧美激情| 1000部国产精品成人观看| 中文字幕日本不卡| 综合在线观看色| 国产精品国产a级| 最新热久久免费视频| 自拍偷拍亚洲激情| 一区二区在线观看视频在线观看| 中文av一区特黄| 亚洲欧洲日韩综合一区二区| 国产精品的网站| 亚洲天堂精品在线观看| 一区二区三区四区高清精品免费观看| 中文字幕在线不卡视频| 亚洲欧美激情在线| 亚洲综合免费观看高清完整版在线 | 欧美日韩精品一区二区在线播放| 日本精品一区二区三区四区的功能| 91亚洲精品久久久蜜桃| 欧洲亚洲国产日韩| 欧美日韩在线观看一区二区| 欧美日韩精品福利| 日韩精品一区二区三区在线| 久久久精品中文字幕麻豆发布| 国产精品成人午夜| 亚洲精品国产精品乱码不99| 亚洲午夜一区二区三区| 久久福利资源站| 成人免费视频播放| 欧美性色黄大片手机版| 日韩午夜中文字幕| 国产精品萝li| 亚洲午夜精品在线| 激情五月婷婷综合| 91免费在线播放| 91精品国产综合久久久久久| 国产色一区二区| 亚洲国产视频网站| 国产麻豆欧美日韩一区| 色综合天天狠狠| 欧美第一区第二区| 亚洲色欲色欲www在线观看| 美女一区二区在线观看| 成人av网站大全| 日韩一区二区三区av| 国产精品久久久久影院亚瑟| 日韩高清在线一区| 成人午夜电影久久影院| 欧美日韩大陆在线| 日本一区二区视频在线观看| 婷婷久久综合九色综合绿巨人| 成人一区二区在线观看| 欧美精品 国产精品| 中文成人综合网| 国产露脸91国语对白| 欧美一区二区三区四区久久| 亚洲人吸女人奶水| 国产精华液一区二区三区| 欧美高清激情brazzers|