PHP GD庫是一個非常強大的圖片處理工具,它能夠幫助我們快速地進行圖片處理,特別是添加水印。在實際的應用中,我們經常需要對圖片進行處理,并添加相關的水印信息。如何使用PHP GD庫來實現這一功能呢?下面我們將詳細介紹。
我們首先需要加載圖片,然后通過GD函數將其轉換為GD圖片。這里我們使用JPEG圖片作為例子。代碼如下:
$file = "test.jpg"; // 文件名 $info = getimagesize($file); // 獲取原始圖片信息 $im = imagecreatefromjpeg($file); // 創建GD圖片接下來,我們可以利用GD的相關函數來添加水印。具體方法有兩種,第一種是將文本作為水印添加到圖片上,第二種是將圖片作為水印添加到圖片上。 1、 在圖片上添加文本水印 我們可以利用GD的相關函數在圖片上添加文本水印。下面的代碼可以將一個紅色的“Hello World”文本水印添加到圖片上:
$fontfile = 'arial.ttf'; // 字體文件名 $text = "Hello World"; // 文本內容 $size = 20; // 字體大小 $rotate = -10; // 文本旋轉角度 $x = 50; // 文本橫坐標 $y = 50; // 文本縱坐標 $angle = -10; // 文本角度 $color = imagecolorallocatealpha($im, 255, 0, 0, 50); // 字體顏色 imagettftext($im, $size, $angle, $x, $y, $color, $fontfile, $text); // 在圖片上添加文本水印其中,我們使用了這個函數進行添加文字水印。 這里,首先通過imagecolorallocatealpha函數定義了文字顏色和透明度。之后,通過imagettftext函數在圖片上添加文字水印即可。 2、 在圖片上添加圖片水印 我們同樣可以在圖片上添加一個圖片水印。下面的代碼可以將一個png格式的圖像添加到jpg格式的圖片上:
$logoimg = 'logo.png'; // 水印圖片路徑 $logo = imagecreatefrompng($logoimg); // 創建水印圖片 GD 對象 list($logo_width, $logo_height) = getimagesize($logoimg); // 獲取水印圖片的寬高 $dst_x = $info[0] - $logo_width; // 起點橫坐標 $dst_y = $info[1] - $logo_height; // 起點縱坐標 $src_x = 0; // 起點橫坐標 $src_y = 0; // 起點縱坐標 $src_w = $logo_width; // 源圖像寬度 $src_h = $logo_height; // 源圖像高度 $opacity = 100; // 圖像透明度 imagecopymerge($im, $logo, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $opacity); // 合并圖片其中,我們先通過imagecreatefrompng函數在PHP GD中創建一個png格式的水印圖像。接著,使用getimagesize函數獲取水印圖片的寬度和高度。之后,使用imagecopymerge函數將水印圖片合并到需要加水印的目標圖片中,調整合并的位置和透明度,最后生成帶有水印的圖片。 最后,我們需要保存加上水印的圖片,代碼如下:
$newfile = 'new.jpg'; // 保存文件名 imagejpeg($im, $newfile, 90); // 將圖片保存到文件 imagedestroy($im); // 銷毀內存中的圖片對象其中,使用imagejpeg函數將圖片保存到指定文件中。最后,銷毀內存中的圖片對象以釋放內存。 在實際應用中,對于需要加水印的圖片,我們可以根據需要選擇添加文本或圖片水印。通過以上介紹,相信大家可以輕松地使用PHP GD庫進行水印添加,并實現類似于美圖秀秀等圖片處理軟件的功能。