PHP GD是PHP擴(kuò)展庫中的一個模塊,用于處理圖片。通過使用GD庫,可以在PHP程序中對各種格式的圖片進(jìn)行操作,如生成、裁剪、縮放、旋轉(zhuǎn)等,極大地提高了Web應(yīng)用的圖片處理能力。以下是一些實(shí)用的PHP GD的功能。
生成驗(yàn)證碼是一個常見的需求,PHP GD提供的圖像生成函數(shù)可以很方便地生成驗(yàn)證碼。比如下面這段代碼可以生成一個紅色背景、黑色字體、隨機(jī)生成數(shù)字和字母的驗(yàn)證碼:
$width = 100; $height = 30; $image = imagecreatetruecolor($width, $height); $bgColor = imagecolorallocate($image, 255, 0, 0); $textColor = imagecolorallocate($image, 0, 0, 0); imagefill($image, 0, 0, $bgColor); $code = ''; for ($i = 0; $i< 4; $i++) { $char = chr(mt_rand(48, 122)); $code .= $char; imagettftext($image, 20, mt_rand(-10, 10), 20 * $i + 10, 20, $textColor, 'arial.ttf', $char); } header('Content-Type: image/png'); imagepng($image); imagedestroy($image);
PHP GD還提供了水印功能,可以在圖片上添加水印信息,如公司標(biāo)志、文字版權(quán)等,避免別人盜用圖片。下面是一個添加文字水印的例子:
$image = imagecreatefromjpeg('test.jpg'); $textColor = imagecolorallocate($image, 255, 255, 255); imagettftext($image, 20, 0, 10, 30, $textColor, 'arial.ttf', 'Copyright'); header('Content-Type: image/jpeg'); imagejpeg($image); imagedestroy($image);
PHP GD還可以對圖片進(jìn)行縮略處理,避免用戶上傳過大的圖片影響網(wǎng)站加載速度。下面是一段代碼可以將圖片等比例縮放到250x250大小:
$image = imagecreatefromjpeg('test.jpg'); $width = imagesx($image); $height = imagesy($image); $thumbWidth = 250; $thumbHeight = 250; if ($width >= $height) { $thumbHeight = intval($height * 250 / $width); } else { $thumbWidth = intval($width * 250 / $height); } $thumb = imagecreatetruecolor($thumbWidth, $thumbHeight); imagecopyresampled($thumb, $image, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $width, $height); header('Content-Type: image/jpeg'); imagejpeg($thumb); imagedestroy($image); imagedestroy($thumb);
PHP GD還可以實(shí)現(xiàn)簡單的圖像處理特效,如黑白處理、顏色反轉(zhuǎn)、高斯模糊等。下面是使用ImageFilter函數(shù)實(shí)現(xiàn)黑白顏色處理的例子:
$image = imagecreatefromjpeg('test.jpg'); imagefilter($image, IMG_FILTER_GRAYSCALE); header('Content-Type: image/jpeg'); imagejpeg($image); imagedestroy($image);
綜上所述,PHP GD提供了一系列強(qiáng)大的圖像處理功能,可以實(shí)現(xiàn)各種圖片處理需求。但是在使用PHP GD時要注意內(nèi)存消耗,不能處理過大的圖片,否則會導(dǎo)致內(nèi)存耗盡。
上一篇php gdiplus
下一篇php gd什么意思