ddddd

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);

}


温馨提示:

欢迎阅读本文章,觉得有用就多来支持一下,没有能帮到您,还有很多文章,希望有一天能帮到您。

ThinkPHP5.1上传图片添加水印---相关文章


评论区

ddddd

程序员-学习的网站-想学习编程的码农可以进来看看

首页

视频教程

购物车

我的订单