如果你正在考慮采用一種動態語言來創建網站并且有圖像處理方面的需求,那么PHP GD庫應該首先考慮。這個庫是PHP的一個擴展,它提供了許多圖像處理的函數,包括創建、合并、調整大小和存儲圖像等操作。
比如,圓形頭像是網站中非常常見的一種形式,我們可以使用GD庫來生成圓形頭像。代碼如下:
$size = 300; $image = imagecreatefromjpeg("avatar.jpg"); $output = imagecreatetruecolor($size, $size); $bg = imagecolorallocate($output, 255, 255, 255); imagefill($output, 0, 0, $bg); $fg = imagecolorallocate($output, 255, 0, 0); $radius = $size / 2; for ($x = 0; $x< $size; $x++) { for ($y = 0; $y< $size; $y++) { $rgb = imagecolorat($image, $x, $y); $colors = imagecolorsforindex($image, $rgb); $alpha = 127 - floor(($x - $radius) * ($x - $radius) + ($y - $radius) * ($y - $radius)) * 127 / ($radius * $radius); imagesetpixel($output, $x, $y, imagecolorallocatealpha($output, $colors['red'], $colors['green'], $colors['blue'], $alpha)); } } header("Content-Type: image/jpeg"); imagejpeg($output); imagedestroy($output);
除了創建圖像之外,我們還可以使用GD庫調整圖像的大小,如果需要將較大的圖片縮小到更小的尺寸以提高良好的網站性能,那么這個功能就非常有用。我們可以使用以下代碼將圖片調整到56x56像素:
$new_width = 56; $new_height = 56; $src = imagecreatefromjpeg("example.jpg"); $new = imagecreatetruecolor($new_width, $new_height); imagecopyresampled($new, $src, 0, 0, 0, 0, $new_width, $new_height, imagesx($src), imagesy($src)); header("Content-Type: image/jpeg"); imagejpeg($new); imagedestroy($new);
除了基本的圖像操作,GD庫還支持創建、合并和處理具有不同透明度的多個圖層。典型的應用包括創建具有陰影效果的卡片和圖片剪貼板。以下代碼演示如何將兩個圖像合成為一個圖像,并在其中一個圖像上創建透明度的效果:
$base_image = imagecreatefrompng("base.png"); $top_image = imagecreatefrompng("top.png"); imagealphablending($top_image, true); imagesavealpha($top_image, true); imagecopy($base_image, $top_image, 0, 0, 0, 0, imagesx($top_image), imagesy($top_image)); header("Content-Type: image/png"); imagepng($base_image); imagedestroy($base_image); imagedestroy($top_image);
以上只是GD庫中眾多強大功能的一個微小的示例。尤其對于需要處理圖像的網站,作為PHP的擴展,GD庫是一個強大且可靠的工具,可大大簡化這些任務并提高性能。
上一篇php gd 使用
下一篇php gd info