在web開發中,製作圖片縮圖、浮水印等常見操作是經常需要的,使用PHP來進行這些操作是非常方便的。 PHP的GD擴充是一個很好的選擇,它提供了一些方便的方法來處理圖片。
如果你的PHP沒有安裝GD擴展,需要先安裝擴充。在Linux中可以使用shell指令sudo apt-get install php7.0-gd
進行安裝,Windows下方可以在PHP設定檔php.ini中將extension=gd2
的註解去掉即可。
現在我們來建立一個簡單的PNG圖片。 PHP的imagecreate()函數可以用來建立一個基礎的圖片,可以指定寬度和高度。
$width = 200; $height = 200; $image = imagecreate($width, $height);
這裡我們建立一個200×200的PNG圖片,為了方便,我們將其儲存到本地:
header("Content-type: image/png"); imagepng($image, "test.png");
這個圖片產生後,可以在test.png中找到。這個步驟可以用來創造許多需要的基本圖片。
我們常常需要在圖片上寫一些文字,GD擴充功能提供了imagestring()函數來完成這個動作:
$bgColor = imagecolorallocate($image, 255, 255, 255); $textColor = imagecolorallocate($image, 0, 0, 0); $fontFile = 'arial.ttf'; $fontSize = 20; $text = 'Hello World!'; $x = 50; $y = 150; imagettftext($image, $fontSize, 0, $x, $y, $textColor, $fontFile, $text);
這裡我們設定了背景色,文字顏色,字體文件,字體大小,文字內容和位置,並使用imagettftext()函數將文字渲染到圖像上。要使用imagettftext()函數,需要確保FreeType函式庫已經正確安裝在伺服器上。
除了在圖片上寫文字外,我們還需要時常需要旋轉圖像,GD擴充功能也提供了imagecopyrotate()函數完成這個操作:
$degrees = -45; $newImage = imagerotate($image, $degrees, 0); imagepng($newImage, 'rotated.png');
這個例子中會把原始圖片旋轉45度,最後產生一個新的PNG檔案"rotated.png"。除了旋轉,還有很多其他的圖片處理操作可以使用GD擴充完成。
最後,我們來為圖片加上浮水印。這可以用imagecopy()函數來完成。我們可以先將浮水印縮小,並設定不透明度:
$watermark = imagecreatefrompng('watermark.png'); $watermarkWidth = imagesx($watermark); $watermarkHeight = imagesy($watermark); $newWidth = $width / 2; $newHeight = $height / 2; $newWatermark = imagecreatetruecolor($newWidth, $newHeight); imagecopyresampled($newWatermark, $watermark, 0, 0, 0, 0, $newWidth, $newHeight, $watermarkWidth, $watermarkHeight); imagecopymerge($image, $newWatermark, 0, 0, 0, 0, $newWidth, $newHeight, 50);
這裡我們創建一個浮水印的圖片,並將其大小縮小一半,然後透過imagecopymerge()將其加到原始圖片上,並設定了50%的不透明度。
這樣,我們就學習了GD擴充的一些基本用法。當然,GD擴充還有很多其他的功能,如果你需要的話可以去官方文件查看更多的用法。
以上是php如何使用PHP的GD擴充?的詳細內容。更多資訊請關注PHP中文網其他相關文章!