首頁  >  文章  >  後端開發  >  PHP影像效果處理函數使用介紹

PHP影像效果處理函數使用介紹

PHPz
PHPz原創
2023-06-15 20:48:331122瀏覽

PHP作為一種腳本語言,擁有豐富的影像處理函數庫,可輕鬆地對影像進行各種處理操作,如縮放、剪切、浮水印、濾鏡等,並且支援各種格式的圖片。

在本篇文章中,我們將介紹 PHP 中常用的圖像處理函數,並提供實際應用場景和範例程式碼。

一、縮放與裁切

縮放和裁切是處理圖片常用的操作,以下我們將具體介紹對應的 PHP 影像處理函數。

  1. 縮放

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 )

參數解釋:

  • $dst_image 是目標映像資源;
  • $src_image 是來源映像資源;
  • $dst_x 和$dst_y 是目標映像資源左上角所處的座標位置;
  • $src_x 和$src_y 是來源映像資源左上角所處的座標位置;
  • $dst_w 和$dst_h 是目標影像的寬度和高度;
  • $src_w 和$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);
?>

  1. 裁剪

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 )

參數解釋:

  • $dst_image 是目標映像資源;
  • $src_image 是來源映像資源;
  • $dst_x 和$ dst_y 是目標映像資源左上角所處的座標位置;
  • $src_x 和$src_y 是來源影像資源左上角所處的座標位置;
  • $src_w 和$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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn