<?php
// 載入底圖 (JPEG) 和水印圖 (PNG,支持透明通道)
$im = imagecreatefromjpeg("liu.jpg");
$img2 = imagecreatefrompng("m.png");
// 獲取尺寸
$im_WH = getimagesize("liu.jpg");
$im_W = $im_WH[0];
$im_H = $im_WH[1];
$img2_WH = getimagesize("m.png");
$img2_W = $img2_WH[0];
$img2_H = $img2_WH[1];
// 計算右下角坐標
$NewX = $im_W - $img2_W;
$NewY = $im_H - $img2_H;
// 疊加:將水印圖複製到底圖上
imagecopy($im, $img2, $NewX, $NewY, 0, 0, $img2_W, $img2_H);
// 輸出圖片
header("Content-type: image/jpeg");
imagejpeg($im);
// 釋放資源
imagedestroy($im);
imagedestroy($img2);
?>
| 函數 | 作用 |
|---|---|
| imagecreatefromjpeg/png/gif | 從文件創建圖片資源,支持對應格式 |
| getimagesize | 獲取圖片寬高及類型信息 |
| imagecopy | 將源圖片的一部分複製到目標圖片指定坐標 |
| imagejpeg/png/gif | 輸出圖片到瀏覽器或文件 |
| imagedestroy | 銷毀圖片資源,釋放內存 |
若需控制水印透明度,請使用 imagecopymerge() 替代 imagecopy():
// 最後一個參數 50 表示 50% 透明度
imagecopymerge($im, $img2, $NewX, $NewY, 0, 0, $img2_W, $img2_H, 50);