首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP GD 庫實現圖片灰色半透明遮罩效果

     編輯:PHP 綜合知識

效果原理

  1. 獲取原圖尺寸(寬、高)。
  2. 創建相同尺寸的真彩色畫布,分配灰色半透明顏色(Alpha 通道)。
  3. 將半透明層與原圖合併(imagecopy)。
  4. 輸出或保存合成後的圖片。

完整實現代碼

<?php
// 原圖路徑
$imfile = './0.jpg';
$origim = imagecreatefromjpeg($imfile);

// 獲取原圖尺寸
$w = imagesx($origim);
$h = imagesy($origim);

// 創建半透明圖層
$newimg = imagecreatetruecolor($w, $h);
// 分配灰色半透明顏色:R=0,G=0,B=0, Alpha=75 (0不透明~127全透明)
$color = imagecolorallocatealpha($newimg, 0, 0, 0, 75);
// 設置該顏色為透明色(關鍵步驟)
imagecolortransparent($newimg, $color);
// 填充整個畫布
imagefill($newimg, 0, 0, $color);

// 合併:將半透明層複製到原圖上
imagecopy($origim, $newimg, 0, 0, 0, 0, $w, $h);

// 輸出保存
imagejpeg($origim, './2.jpg');
imagedestroy($origim);
imagedestroy($newimg);
?>

關鍵函數解析

  • imagecolorallocatealpha():第 5 參數控制透明度,75 約為 30% 不透明度,可根據需求調整(0-127)。
  • imagecolortransparent():必須調用,否則填充會呈現實心灰色塊而非半透明遮罩。
  • imagecopy():目標圖像在前,源圖像在後,實現「蓋在原圖上」的效果。

擴展應用

同理可實現彩色遮罩、漸變遮罩、水印疊加等。只需修改 imagecolorallocatealpha 的 RGB 值及透明度參數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved