在使用PHP開發網站時,使用GD庫進行圖像處理是非常常見的操作之一。它可以實現圖片的裁剪、縮放、旋轉等操作,還可以修改圖片的格式、添加水印等功能。GD庫的配置也很簡單,只需要在編譯PHP時啟用gd擴展,并安裝libgd庫即可。
首先,在編譯PHP時啟用gd擴展是必須的。下面是一個簡單的例子:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-zlib=/usr/local/lib --enable-gd-native-ttf --enable-mbstring --enable-exif --enable-ftp --enable-sockets --enable-wddx --enable-cgi --enable-shared --disable-static上面的命令中,--with-gd啟用了gd擴展,--with-jpeg-dir、--with-png-dir、--with-zlib分別指定了libjpeg、libpng、libz的安裝路徑。 然后,在配置完成后,需要確保安裝了libgd庫。如果沒有安裝,可以使用以下命令進行安裝:
yum install gd gd-devel 或 apt-get install libgd2-xpm-dev安裝完成后,將libgd.so添加到系統庫里:
cp /usr/local/lib/libgd.so.3.0.0 /usr/lib/ ln -s /usr/lib/libgd.so.3 /usr/lib/libgd.so上面的命令中,/usr/local/lib/libgd.so.3.0.0是libgd庫文件所在的路徑,/usr/lib/libgd.so是libgd.so.3的軟鏈接。 接下來,在PHP腳本中調用gd函數庫時,需要在php.ini中開啟gd擴展。在php.ini中找到"extension=gd.so"這一行,并確保它沒有被注釋掉。 最后,重啟Apache服務器,使配置生效:
service httpd restart 或 /etc/init.d/apache2 restart以上就是使用configure配置GD庫的步驟了,大家可以按照這個流程來進行配置。在實際使用中,通過GD庫實現的常見操作例如生成驗證碼、生成縮略圖等,都需要借助GD庫來完成。下面舉個例子,展示如何使用GD庫生成縮略圖:
function thumb($src_file, $dst_file, $dst_width=200, $dst_height=null){ list($src_width, $src_height, $src_type, $src_attr) = getimagesize($src_file); if (!$dst_height) $dst_height = ceil($dst_width * $src_height / $src_width); $src_image = substr(getimagesize($src_file, $src_attr), strlen($src_attr)); $dst_image = imagecreate($dst_width, $dst_height); imagecopyresampled($dst_image, $src_image, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height); imagejpeg($dst_image, $dst_file); imagedestroy($src_image); imagedestroy($dst_image); }以上代碼中,使用getimagesize獲取了原圖的寬、高和類型信息。根據縮略圖的尺寸比例,計算出目標圖的寬、高。imagecreate創建縮略圖,imagecopyresampled對原圖進行縮放,imagejpeg將縮略圖保存為文件,imagedestroy釋放內存。 PHP GD庫的使用非常靈活,可以實現很多有趣的功能。如果您的PHP環境不開啟GD庫擴展,建議根據上述方法進行配置。
上一篇java對象鎖和類鎖
下一篇php configer