博客列表 >tp5.1 一张图添加多个水印

tp5.1 一张图添加多个水印

黄健的博客
黄健的博客原创
2019年07月22日 14:46:051896浏览

我开始是直接循环处理添加水印,定义好循环的次数。


$image = \think\Image::open('./image.png');
$size=$image->size();
$wz=array(); //水印图片坐标数组
$hnum=floor($size[1]/10); //根据高度循环10次
$wnum=floor($size[0]/2);
for($w=0;$w<$hnum;$w++){
                $wz[1]=$w*$hnum;
                $wz[0]=200;
                $image->water('./logo.png',$wz,20)->save('water_image.png');
                $wz[0]=(1*$wnum)+200;
                $image->water('./logo.png',$wz,20)->save('water_image.png');
            }

这样循环出来,等了很久都没有反应。后来公司大佬看了我写的,然后告诉我, save()方法是保存文件的方法,每次循环一次就保存一下,所以就很慢很慢。


接下来换了种写法,我只在循环里用添加水印的方法。


for($w=0;$w<$hnum;$w++){
                $wz[1]=$w*$hnum;
                $wz[0]=200;
                $image->water('./logo.png',$wz,20);
                $wz[0]=(1*$wnum)+200;
                $image->water('./logo.png',$wz,20);
            }
            $image->save('.'.$uploadPath.date("Ymd").'/text_image.png');

这样就大概10多秒就可以,不过在保存图片之前需要  检查一下文件夹是否存在。


    

    

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议