亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际

17站長網(wǎng)

17站長網(wǎng) 首頁 編程 PHP編程 查看內(nèi)容

PHP函數(shù)Imagettftext(),用于寫入帶有表情符號(hào)的文本的處理方法

2023-1-19 16:40| 查看: 6388 |來源: 互聯(lián)網(wǎng)

我正在使用Imagettftext函數(shù)在圖像上寫入文本,但我的文本包含表情符號(hào),它將表情符號(hào)替換為方框以下是mycode:$black=imagecolorallocate($main_img,0x00,0x00, ...

我正在使用Imagettftext函數(shù)在圖像上寫入文本,但我的文本包含表情符號(hào),它將表情符號(hào)替換為方框

以下是mycode:

$black = imagecolorallocate ( $main_img, 0x00, 0x00, 0x00 );
$font_path = "Arial.ttf";
imagettftext ( $main_img, 14, 0, 73, 685, $black, $font_path, $text );

文本示例:

test testt😘 Hello 👋💐 Those 👏  Mega x 👊❤️  Graphic 💋

我已嘗試將字體更改為"Arial Unicode",但未解決問題。

如何解決此問題?

首先,我們需要了解emoji是如何實(shí)現(xiàn)的:

Apple PNG圖片(SBIX表)

Apple使用TrueType/OpenType規(guī)范的一個(gè)專有的、未發(fā)布的擴(kuò)展來實(shí)現(xiàn)它,以將PNG圖像添加到字體中。然后,這些PNG圖像顯示在連續(xù)文本中。谷歌也實(shí)現(xiàn)了類似的東西,但它與蘋果的解決方案不兼容。

Mozilla和Adobe的SVG(SVG表)。

這兩家網(wǎng)絡(luò)巨頭為了最雄心勃勃的格式而走到了一起:OpenType中的SVG。我們不是將Unicode字符映射到字形,而是將其映射到SVG圖像。這為我們帶來了SVG的所有可愛的額外功能,包括漸變、嵌入的位圖圖像甚至動(dòng)畫。從版本26開始,F(xiàn)irefox就已經(jīng)支持它了!

Microsoft COLR/CPAL

默認(rèn)情況下,新的Segoe UI Emoji字體的行為與常規(guī)TrueType/OpenType字體類似。它有Unicode編碼的、未上色的"基本字形"。但字體中還有兩個(gè)附加表:COLR表將作為層的附加字形鏈接到基本字形,并定義這些層的順序。并且CPAL(調(diào)色板)表為各個(gè)層存儲(chǔ)一個(gè)或多個(gè)調(diào)色板。(不同的調(diào)色板對(duì)于在深色和淺色背景上顯示字體非常有用。)因此,當(dāng)支持這一新的顏色功能時(shí),基本字形將被有色層替換。

Google的PNG圖片(CBDT/CBLC表)。

Google提出了一個(gè)使用PNG圖像作為字形的實(shí)現(xiàn)。字形只是簡單地被好的舊圖像所取代。這對(duì)較小的圖標(biāo)很有效,顯然帶來了位圖圖像的所有創(chuàng)作自由,但伸縮性不是很好。放大一個(gè)足夠大的字形,你會(huì)遇到模糊的像素。用css更改字形的顏色即使不是不可能,也是很難的。有趣的是,他們指定在他們的實(shí)現(xiàn)中不應(yīng)該有GLYF表--保存未上色的"正常"字形的表--因此,當(dāng)這種格式不受支持時(shí),看起來沒有退路。它已經(jīng)在Android和Linux上使用的FreeType中實(shí)現(xiàn),但如果提議使用OpenType,也會(huì)將其帶到Windows和Apple計(jì)算機(jī)上。

最后一種方法是我們感興趣的。這是因?yàn)閕magefttext是由PHP GD擴(kuò)展提供的函數(shù)。而GD內(nèi)部使用的是FreeType庫來繪制文本。

從2.5版開始,在FreeType中支持表情符號(hào)。嘗試執(zhí)行php -i命令以查看您有什么版本的FreeType。這是我的:

FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.5.2

但是,在嘗試了我發(fā)現(xiàn)的一些示例字體here后,PHP一直拋出警告:

Warning: imagefttext(): Could not set character size

恐怕GD library不支持FT_LOAD_COLOR標(biāo)志。此標(biāo)志需要有彩色表情符號(hào)。請(qǐng)參閱自由類型更改日志:

2013-05-23  Behdad Esfahbod  

    Add support for color embedded bitmaps (eg. color emoji).

    A new load flag, FT_LOAD_COLOR, makes FreeType load color
    embedded-bitmaps, following this draft specification

      https://color-emoji.googlecode.com/git/specification/v1.html

回答您的問題:您不能使用imagefttext獲得彩色笑臉。對(duì)不起,😉。

本文最后更新于 2023-1-19 16:40,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長:17tui@17tui.com
·END·
站長網(wǎng)微信號(hào):w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部