ThinkPHP5.1上传图片添加水印
作者:程序员11 时间:2025-08-14 人气:12 QQ交流群\邮箱:1003265987@qq.com
ThinkPHP5.1上传图片添加水印
要展示的内容
需要先安装库
给图片添加水印 composer require topthink/think-image
ThinkPHP5.1添加图片水印
/*
* 给图片添加图片水印
* 使用例子 Watermark::addWatermarkImg($imagePath,$watermarkPath,$watermarkPathTemp,80,100,100,20,20);
* $sourceImage 图片路径 ROOT_PATH.'/public/uploads/article/20250814d83c491f9428078c0ce3da2cd99aedd2.png'
* $watermarkImage 水印图片路径 ROOT_PATH.'/public/static/watermark/watermark.jpg'; // 或使用绝对路径
* $watermarkImageTemp 缓存水印图片路径 ROOT_PATH.'/public/static/watermark/temp_watermark.jpg'; // 或使用绝对路径
* $alpha 水印图片透明度 0-100
* $watermark_Width 水印图片显示宽度 100
* $watermark_Height 水印图片显示高度 100
* $offset_X 右下角X偏移量 20
* $offset_Y 右下角Y偏移量 20
*
* **/
public static function addWatermarkImg($sourceImage, $watermarkImage,$watermarkImageTemp,$alpha=50,$watermark_Width=100,$watermark_Height=100,$offset_X=20,$offset_Y=20){
// 打开图片
$imagePath = $sourceImage;
$image = Image::open($imagePath);
$infoImage = getimagesize($imagePath);
$image_W = $infoImage[0];
$image_H = $infoImage[1];
// 水印图片路径(确保水印图片存在)
$watermarkPath = $watermarkImage; // 或使用绝对路径
// 先处理水印图片大小
$watermark = Image::open($watermarkPath);
$watermarkPathTemp = $watermarkImageTemp; // 或使用绝对路径
$watermark_W = $watermark_Width;
$watermark_H = $watermark_Height;
$watermark->thumb($watermark_W, $watermark_H)->save($watermarkPathTemp);
$image->water($watermarkPathTemp, [$image_W-$watermark_W-$offset_X, $image_H-$watermark_H-$offset_Y], $alpha)->save($imagePath);
// 删除临时水印文件
unlink($watermarkPathTemp);
}
ThinkPHP5.1添加文字水印
/*
*给图片添加文字水印
* 使用例子 Watermark::addWatermarkText($imagePath,'好好学习thinkphp5.1',40,'#000000',-20);
* $sourceImage 图片路径 ROOT_PATH.'/public/uploads/article/20250814d83c491f9428078c0ce3da2cd99aedd2.png'
* $text 内容 thinkphp5.1
* $fontsize 字体大小 20
* $color 颜色 #ffffff
* $offset 偏移量 0
*
* **/
public static function addWatermarkText($sourceImage,$text='thinkphp5.1',$fontsize=20,$color='#ffffff',$offset=0){
$imagePath = $sourceImage;
$image = Image::open($imagePath);
$font = ROOT_PATH.'/public/static/watermark/simsun.ttc';
$image->text($text,$font,$fontsize,$color,Image::WATER_SOUTHEAST,$offset)->save($imagePath);
}
温馨提示:
欢迎阅读本文章,觉得有用就多来支持一下,没有能帮到您,还有很多文章,希望有一天能帮到您。