您好,登錄后才能下訂單哦!
在PHP中實現圖片水印功能,可以使用GD庫或Imagick擴展
方法一:使用GD庫
function add_watermark($source, $destination, $watermark) {
// 獲取圖片尺寸
list($sourceWidth, $sourceHeight) = getimagesize($source);
// 創建圖像資源
switch ($sourceWidth) {
case 150:
$sourceResource = imagecreatefromjpeg($source);
break;
case 200:
$sourceResource = imagecreatefrompng($source);
break;
default:
return false;
}
// 創建水印資源
$watermarkResource = imagecreatefrompng($watermark);
// 獲取水印尺寸
list($watermarkWidth, $watermarkHeight) = getimagesize($watermark);
// 計算水印位置
$destX = $sourceWidth - $watermarkWidth;
$destY = $sourceHeight - $watermarkHeight;
// 將水印合并到目標圖片上
imagecopy($sourceResource, $watermarkResource, $destX, $destY, 0, 0, $watermarkWidth, $watermarkHeight);
// 保存圖片
switch ($sourceWidth) {
case 150:
imagejpeg($sourceResource, $destination);
break;
case 200:
imagepng($sourceResource, $destination);
break;
}
// 銷毀圖像資源
imagedestroy($sourceResource);
imagedestroy($watermarkResource);
}
// 使用示例
$source = 'path/to/your/image.jpg';
$destination = 'path/to/your/watermarked_image.jpg';
$watermark = 'path/to/your/watermark.png';
add_watermark($source, $destination, $watermark);
方法二:使用Imagick擴展
function add_watermark($source, $destination, $watermark) {
// 創建Imagick對象
$sourceImage = new Imagick($source);
$watermarkImage = new Imagick($watermark);
// 獲取圖片尺寸
$sourceWidth = $sourceImage->getImageWidth();
$sourceHeight = $sourceImage->getImageHeight();
// 獲取水印尺寸
$watermarkWidth = $watermarkImage->getImageWidth();
$watermarkHeight = $watermarkImage->getImageHeight();
// 計算水印位置
$destX = $sourceWidth - $watermarkWidth;
$destY = $sourceHeight - $watermarkHeight;
// 將水印合并到目標圖片上
$sourceImage->compositeImage($watermarkImage, $destX, $destY);
// 保存圖片
$sourceImage->writeImage($destination);
$sourceImage->clear();
$sourceImage->destroy();
}
// 使用示例
$source = 'path/to/your/image.jpg';
$destination = 'path/to/your/watermarked_image.jpg';
$watermark = 'path/to/your/watermark.png';
add_watermark($source, $destination, $watermark);
這兩種方法都可以實現圖片水印功能,你可以根據自己的需求選擇使用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。