php圖片函數失效是因為沒有安裝freetype的支持,其解決辦法:首先打開相應的文件;然后把freetype的支持安裝上;最后重啟下PHP即可。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
使用imagettftext()函數執行失效的原因排查
登陸使用到驗證碼死活加載不出來,排查之后發現imagettftext函數執行失敗。該函數作用是把文字寫入圖片當中,常用于做驗證碼圖片。使用該函數需要安裝GD庫,但是安裝之后依然不能使用,報以下錯誤:
PHP Fatal error: Call to undefined function imagettftext()
原因是由于安裝GD庫的時候沒有安裝freetype的支持。freetype不是一個獨立的拓展,是依附在GD庫上面的一個拓展而已。所以編譯的時候要把freetype的支持也安裝上。
由于我使用的環境是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,完美解決。
【推薦學習:PHP視頻教程】