首頁 > 後端開發 > php教程 > php如何使用PHP的GD擴充?

php如何使用PHP的GD擴充?

WBOY
發布: 2023-06-01 10:24:02
原創
1335 人瀏覽過

在web開發中,製作圖片縮圖、浮水印等常見操作是經常需要的,使用PHP來進行這些操作是非常方便的。 PHP的GD擴充是一個很好的選擇,它提供了一些方便的方法來處理圖片。

  1. 安裝GD擴充功能

如果你的PHP沒有安裝GD擴展,需要先安裝擴充。在Linux中可以使用shell指令sudo apt-get install php7.0-gd進行安裝,Windows下方可以在PHP設定檔php.ini中將extension=gd2的註解去掉即可。

  1. 建立基本圖片

現在我們來建立一個簡單的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中找到。這個步驟可以用來創造許多需要的基本圖片。

  1. 設定文字

我們常常需要在圖片上寫一些文字,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函式庫已經正確安裝在伺服器上。

  1. 旋轉圖像

除了在圖片上寫文字外,我們還需要時常需要旋轉圖像,GD擴充功能也提供了imagecopyrotate()函數完成這個操作:

$degrees = -45; 
$newImage = imagerotate($image, $degrees, 0);
imagepng($newImage, 'rotated.png');
登入後複製

這個例子中會把原始圖片旋轉45度,最後產生一個新的PNG檔案"rotated.png"。除了旋轉,還有很多其他的圖片處理操作可以使用GD擴充完成。

  1. 加浮水印

最後,我們來為圖片加上浮水印。這可以用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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板