PHP作為一種腳本語言,擁有豐富的影像處理函數庫,可輕鬆地對影像進行各種處理操作,如縮放、剪切、浮水印、濾鏡等,並且支援各種格式的圖片。
在本篇文章中,我們將介紹 PHP 中常用的圖像處理函數,並提供實際應用場景和範例程式碼。
一、縮放與裁切
縮放和裁切是處理圖片常用的操作,以下我們將具體介紹對應的 PHP 影像處理函數。
imagecopyresized() 是 PHP 中最常用的縮放函數,可以改變圖片的大小,同時保持原始圖片的縱橫比。
此函式語法如下:
bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_y , int $src_x , int $src_y , int $intst_w , int $ dst_h , int $src_w , int $src_h )
參數解釋:
以下是一段縮放圖片的程式碼範例:
$src_image = imagecreatefrompng('origin.png');
$dst_image = imagecreatetruecolor (300, 300);
$src_w = imagesx($src_image);// 取得來源圖片寬度
$src_h = imagesy($src_image);// 取得來源圖片高度
$dst_w = 300;
$dst_h = 300;
imagecopyresized($dst_image, $src_image, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
imagepng($ .png');
imagedestroy($src_image);
imagedestroy($dst_image);
?>
imagecopyresampled( ) 是PHP 中用於裁剪的函數,與imagecopyresized() 功能類似,不過可以實現更高品質的縮放效果。
該函數語法如下:
bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_x , int $dst_y , int $src_x , int $src_y , intst_y , intst_w , int $src_y , intst_w , int, $ dst_h , int $src_w , int $src_h )
參數解釋同imagecopyresized()。
下面是一段用來裁切圖片的程式碼範例:
$src_image = imagecreatefrompng('origin.png');
$dst_image = imagecreatetruecolor( 200, 200);
$src_w = imagesx($src_image);// 取得來源圖片寬度
$src_h = imagesy($src_image);// 取得來源圖片高度
$dst_w = 200;
$dst_h = 200;
$x = 0;
$y = 0;
$src_x = ($src_w-$dst_w)/2;
$src_y = ($src_h-$ dst_h)/2;
imagecopyresampled($dst_image, $src_image, $x, $y, $src_x, $src_y, $dst_w, $dst_h, $dst_w, $dst_h);
imagepng($dst_imagepage, ' crop.png');
imagedestroy($src_image);
imagedestroy($dst_image);
?>
二、水印
#對圖片加上浮水印是實際應用中常會涉及的場景,PHP 同樣也提供了對應的函數支援。
imagecopy() 函數可以用來將一張圖片覆蓋到另一張圖片上,實現浮水印的效果。
此函數語法如下:
bool imagecopy ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_y , int $src_x , int $src_y , int $src_w , int $int src_h )
參數解釋:
下面是一段加上浮水印的程式碼範例:
$src_image = imagecreatefrompng('origin.png');
$watermark_image = imagecreatefrompng('watermark.png');
$src_w = imagesx($src_image);// 取得來源圖片寬度
$src_h = imagesy($src_image);// 取得來源圖片高度
$watermark_w = imagesx($watermark_image);// 取得浮水印寬度
$watermark_h = imagesy($watermark_image);// 取得水印高度
$max_width = $src_w - $watermark_w - 10; // 水印位置允許的最大寬度
$max_height = $src_h - $watermark_h - 10; // 水印位置允許的最大高度
$x = rand(10, $max_width); // 隨機產生浮水印的位置橫座標
$ y = rand(10, $max_height); // 隨機產生浮水印的位置縱座標
imagecopy($src_image, $watermark_image, $x, $y, 0, 0, $watermark_w, $watermark_h);
# imagepng($src_image, 'watermarked.png');
imagedestroy($src_image);
imagedestroy($watermark_image);
?>
三、濾鏡
#PHP 還提供多種濾鏡效果,能夠讓圖片更加有趣和藝術化。
imagefilter() 函數支援多種濾鏡效果,如反轉、灰階、模糊等,具體可參考 PHP 官方文件。
以下是一段使用濾鏡效果的程式碼範例:
$src_image = imagecreatefrompng('origin.png');
imagefilter($src_image, IMG_FILTER_PIXELATE, 15, true);// 打馬賽克
imagefilter($src_image, IMG_FILTER_CONTRAST , -50);// 調節對比
imagepng($src_image, 'filter.png');
imagedestroy($src_image);
?>
#以上程式碼實作了對一張圖片進行馬賽克和對比度的調節。
綜上所述,PHP 在影像處理方面提供了強大的支持,函數簡單易用,可滿足大部分應用場景的需求。了解這些常用的影像處理函數,將大大提高在 Web 應用開發中的效率。
以上是PHP影像效果處理函數使用介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!