imagecopy)。<?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 值及透明度參數。