成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

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

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

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

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

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

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

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

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

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

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

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

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

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

1磅 = PPI/72 個像素

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

PPI = (72*像素數(shù))/磅值。實驗得出的結論是:

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

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

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

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

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

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

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

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

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

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

2 幾個小技巧

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

盡管這個函數(shù)可以顯示字符串,但是針對于字處理軟件(如Word)來說,并不能使用。因為一旦涉及到對其的問題,此函數(shù)即不能使用了。因為它不能處理字間距,當然也就無法實現(xiàn)分散對齊等功能。再加上每行的“避首尾”(如,不能位于行首)要求,做好字處理并不簡單。

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

(2)如何顯示加粗字體

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

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

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

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

巨人網(wǎng)絡通訊聲明:本文標題《PHP的imageTtfText()函數(shù)深入詳解》,本文關鍵詞  PHP,的,imageTtfText,函數(shù),深入,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP的imageTtfText()函數(shù)深入詳解》相關的同類信息!
  • 本頁收集關于PHP的imageTtfText()函數(shù)深入詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    久久久精品一区二区涩爱| 欧美久久成人| 国产欧美欧洲| 国产免费黄色一级片| 777午夜精品视频在线播放| 香蕉伊大人中文在线观看| 伊人久久久久久久久久| 91在线在线观看| 成人在线看片| 久久精品女人| 亚洲国产aⅴ天堂久久| 男女男精品视频站| 欧美在线精品免播放器视频| 欧美一区二区日韩一区二区| 免费成人高清在线视频| 国产成人夜色高潮福利影视| 亚洲成av人乱码色午夜| 成人中心免费视频| 成人欧美在线| 91porn在线| 2018国产精品| www.97av| 亚洲乱码国产一区三区| 奇米四色7777| 欧美高清xxxxxkkkkk| 亚洲人成电影网| 国产精品视频区1| 欧美久久久久| 中文字幕欧美日韩| 在线观看一区二区三区视频| 日韩一区二区精品葵司在线| 亚洲韩国日本中文字幕| 国产男男gay体育生网站| 5g影院5g电影天天爽快| av一本久道久久波多野结衣| 香蕉视频在线观看网站| 在线观看av中文字幕| 不卡在线视频| 久久精品国产秦先生| 神马日本精品| 欧美亚洲图片小说| 一级欧美视频| 黄页网站大全在线观看| 国产视频丨精品|在线观看| 理论不卡电影大全神| 91麻豆精品秘密| 理论片中文字幕| av成人男女| 日本一二三不卡视频| 57pao国产一区二区| 自拍日韩欧美| 四季av一区二区| 国产日产精品一区二区三区四区的观看方式| 爱情岛论坛亚洲首页入口章节| 中文字幕视频观看| 中文字幕欧美一| 婷婷综合五月| 亚洲国产精品字幕| 欧美成人一二三区| 激情伊人五月天| 性xxxfllreexxx少妇| 97在线观看免费观看高清| 欧美一区二区三区四区久久| 91成人在线精品视频| 欧美一区久久久| 天天操夜夜爽| 欧美热在线视频精品999| 欧美白人猛性xxxxx交69| 成人国产激情| 欧美日韩国产成人在线观看| 97精品国产97久久久久久免费| 大片免费在线观看| 亚洲警察之高压线| 亚洲天堂男人av| 在线观看入口黄最新永久免费国产| 亚洲成人777777| 综合久久2019| 大胸美女被爆操| 精品亚洲一区二区三区在线观看| 97精品国产aⅴ7777| 亚洲五码在线观看视频| 无码h黄肉3d动漫在线观看| 欧美激情aaaa| 欧美极品中文字幕| 超碰97成人| 国产精品久久久久久久久久久久久久久久久| 曰本大片免费观看视频| 欧美第一黄色网| 国产男女猛烈无遮挡免费视频| 欧美精品乱码久久久久久| 少妇精品无码一区二区免费视频| 欧美不卡视频在线观看| 国产精品综合不卡av| 日韩欧美美女在线观看| 一区二区三区激情| 国产视频一二三区| 日韩欧美一区二区三区四区| 亚洲全部视频| 俺要去色综合狠狠| 久久久精品少妇| 无码无遮挡又大又爽又黄的视频| 四虎精品永久免费| 欧美一级淫片007| 精品久久久久久亚洲国产300| 日韩一二三在线视频播| 欧美国产日韩xxxxx| 一区二区三区www污污污网站| 久久av资源站| 久久久久久国产精品免费无遮挡| 在线观看色视频| 精品视频网站| 亚洲免费黄色| 国产免费黄色片| 日韩一区二区在线观看| 波多野结衣 作品| 国产色在线 com| av成人在线播放| 午夜视频在线观看一区| 亚洲综合在线免费观看| 成人精品在线观看| 91老司机福利在线| 日韩一区二区三区四区| 欧美成人女星排名| 国产精品久久二区二区| 欧美一区二区三区系列电影| 亚洲美女尤物影院| 欧美精品一区二区三区在线四季| 国产一区二区三区四区在线观看| 在线免费看av网站| 成人短视频在线观看免费| 热国产热中文视频二区| 久久99久久久久久久噜噜| 日本少妇激三级做爰在线| 一区二区三区中文字幕| 欧美丰满少妇xxxbbb| 中文字幕在线观看第三页| 两个人日本在线观看视频| 日本不卡1区2区3区| 在线观看亚洲电影| 欧美四级电影网| 男女精品网站| 丝袜连裤袜欧美激情日韩| 11024精品一区二区三区日韩| 在线亚洲高清视频| 午夜影院福利社| 日本aⅴ免费视频一区二区三区| 国产精品亚洲片夜色在线| 91在线小视频| 午夜精品久久久久99热蜜桃导演| 日韩动漫在线观看| 午夜精品一区二区三区电影天堂| 欧美三级网站| 色网站国产精品| 亚洲欧美一级| gogogo高清在线观看一区二区| 久99久精品视频免费观看| 欧美午夜三级| 国产欧美一区二区精品久导航| 明星裸体视频一区二区| 亚洲日本在线播放| 都市激情亚洲一区| 亚洲神马久久| 欧美高清3dfreexxxx性| 国产激情综合| 成人免费在线视频播放| 日本在线视频www色| 亚洲三区在线| 成人av在线影院| 精品免费99久久| 蜜桃麻豆影像在线观看| 污污视频网站在线| 一级国产黄色片| 黄色av片三级三级三级免费看| 四色最新网址| re久久精品视频| 亚洲区自拍偷拍| 成人福利在线看| 国产精品视频一区二区久久| 日本一区二区不卡在线| 国产午夜手机精彩视频| 亚洲天堂在线视频观看| 四虎精品一区二区永久在线观看| 亚洲国产日韩一区二区| 中日精品一色哟哟| 日本精品一区二区三区在线播放| 激情在线视频播放| 狠狠色伊人亚洲综合成人| 日本成人在线一区| 国产香蕉精品| 久久69国产一区二区蜜臀| 亚洲日韩第一页| 欧美黄色精品| 91超碰在线免费观看| 中文字幕在线视频第一页| 国产在线不卡一区二区三区| 国产精品午夜福利| 亚洲精品成人a在线观看| 日韩亚洲在线视频| 亚洲激精日韩激精欧美精品| 综合国产在线| 日韩极品在线| 日韩欧美亚洲国产另类| 激情五月综合婷婷| av男人的天堂在线| www.四虎.com| 欧美人与性禽动交精品| 精品国产一区二区三区久久久| 香蕉视频在线免费| 国产精品99久久久久久人| 成人av在线一区二区三区| 成人ww免费完整版在线观看| 国产高清在线一区| 97久久精品人人做人人爽| 中文无码精品一区二区三区| 欧美日韩中文字幕在线播放| 欧美婷婷六月丁香综合色| 国产一级淫片久久久片a级| 99精品视频99| 日韩欧美成人一区二区三区| 91传媒理伦片在线观看| 精品人妻一区二区三区含羞草| 丁香婷婷综合色啪| 精品欧美国产| 毛片视频网站在线观看| 搞黄网站在线观看| sese在线视频| 国产在线观看中文字幕| 久久99精品一区二区三区三区| 精品三级av在线导航| 国产调教视频一区| 国产精品久久不卡| 欧美亚洲精品在线观看| 欧美日韩dvd在线观看| 欧美视频一区二区三区| 91在线porny国产在线看| 俺去亚洲欧洲欧美日韩| 久久久精品天堂| 国产精品国产三级国产aⅴ入口| 97国产在线播放| 免费不卡亚洲欧美| 亚洲伊人网在线观看| 加勒比日本影视| 亚洲免费观看高清完整版在线观| 日本在线视频免费观看| 国产视频亚洲视频| 久久久久久国产精品一区| 99视频热这里只有精品免费| 国产成人av电影免费在线观看| 欧美激情亚洲综合一区| 狂野欧美激情性xxxx欧美| www.亚洲.com| av影片在线播放| 亚洲三级在线观看视频| 中文字幕一区日韩电影| 男人天堂1024| 国产又黄又大又爽| 成人看片黄a免费看视频| 成人欧美一区二区三区黑人麻豆| 久久精品一本| 国产馆精品极品| 黄色一级视频片| 91亚洲精品视频| 欧美日韩不卡中文字幕在线| 日韩免费不卡视频| 性色av蜜臀av浪潮av老女人| 久久久一区二区三区不卡| 久久综合99re88久久爱| 2019日本中文字幕| 欧美精品自拍偷拍动漫精品| 日本不卡视频一区二区| y4480在线8影院| 国产二区视频| 免费看久久久| 日韩一区二区免费看| 欧美xxxxxxxx| 成人蜜桃视频网站网址| 四虎影院一区二区| 亚洲蜜桃精久久久久久久久久久久| 欧美在线二区| 午夜精品久久久久久久爽| 天天舔天天干天天操| 日韩中文字幕欧美| 国产不卡av一区二区| 成人综合日日夜夜| 国产一区亚洲二区| 美丽的小蜜桃4春潮| 水蜜桃一区二区三区| 91九色视频导航| 国产色产综合色产在线视频| 91精品久久久久久久久久久久久久| 久草资源在线| 国产视频网站在线观看| 中文字幕少妇一区二区三区| 天天操天天碰| 成人激情综合网站| 日韩手机在线观看视频| 色啪啪.com| 在线观看福利片| 天堂аⅴ在线最新版在线| 久久久精品视频国产| 色欧美片视频在线观看| 一本久久青青| 欧美精品乱码久久久久久| 久久色.com| eeuss中文字幕| 久久久www成人免费精品| 欧美日本韩国一区二区三区视频| 日本中文字幕第一页| 精品人妻一区二区三区四区在线| 欧美日韩人人澡狠狠躁视频| 日韩国产精品久久久久久亚洲| 精品人妻少妇一区二区| 精品国产免费av| 国产成人在线网站| 久久蜜桃av一区精品变态类天堂| 国产主播精品| 精品国产乱码久久久久久鸭王1| 久久久蜜桃精品| wwwxxx在线观看| 亚洲第一区在线观看| 永久免费的av网站| 女人天堂在线| 成人a'v在线播放| 老司机精品视频在线| 国产三级在线观看完整版| 青青在线观看视频中文字| www免费在线观看视频| 九色综合国产一区二区三区|