php圖片函數(shù)失效是因?yàn)闆](méi)有安裝freetype的支持,其解決辦法:首先打開(kāi)相應(yīng)的文件;然后把freetype的支持安裝上;最后重啟下PHP即可。
本文操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
使用imagettftext()函數(shù)執(zhí)行失效的原因排查
登陸使用到驗(yàn)證碼死活加載不出來(lái),排查之后發(fā)現(xiàn)imagettftext函數(shù)執(zhí)行失敗。該函數(shù)作用是把文字寫(xiě)入圖片當(dāng)中,常用于做驗(yàn)證碼圖片。使用該函數(shù)需要安裝GD庫(kù),但是安裝之后依然不能使用,報(bào)以下錯(cuò)誤:
PHP Fatal error: Call to undefined function imagettftext()
原因是由于安裝GD庫(kù)的時(shí)候沒(méi)有安裝freetype的支持。freetype不是一個(gè)獨(dú)立的拓展,是依附在GD庫(kù)上面的一個(gè)拓展而已。所以編譯的時(shí)候要把freetype的支持也安裝上。
由于我使用的環(huán)境是docker搭建的,故只貼出docker的安裝代碼
FROM php:fpm RUN apt-get update && apt-get install -y libfreetype6-dev libmcrypt-dev libpng12-dev libjpeg-dev libpng-dev && docker-php-ext-install iconv mcrypt && docker-php-ext-configure gd --enable-gd-native-ttf --with-freetype-dir=/usr/include/freetype2 --with-png-dir=/usr/include --with-jpeg-dir=/usr/include && docker-php-ext-install gd && docker-php-ext-install mbstring && docker-php-ext-enable gd
重啟下PHP。OK,完美解決。
【推薦學(xué)習(xí):PHP視頻教程】