213 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			213 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						||
 | 
						||
namespace Qcloud\Cos\ImageParamTemplate;
 | 
						||
 | 
						||
class ImageWatermarkTemplate extends ImageTemplate
 | 
						||
{
 | 
						||
 | 
						||
    private $image;
 | 
						||
    private $gravity;
 | 
						||
    private $dx;
 | 
						||
    private $dy;
 | 
						||
    private $blogo;
 | 
						||
    private $scatype;
 | 
						||
    private $spcent;
 | 
						||
    private $dissolve;
 | 
						||
    private $batch;
 | 
						||
    private $degree;
 | 
						||
 | 
						||
    public function __construct() {
 | 
						||
        parent::__construct();
 | 
						||
        $this->image = "";
 | 
						||
        $this->gravity = "";
 | 
						||
        $this->dx = "";
 | 
						||
        $this->dy = "";
 | 
						||
        $this->blogo = "";
 | 
						||
        $this->scatype = "";
 | 
						||
        $this->spcent = "";
 | 
						||
        $this->dissolve = "";
 | 
						||
        $this->batch = "";
 | 
						||
        $this->degree = "";
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 水印图片地址,需要经过 URL 安全的 Base64 编码。
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setImage($value) {
 | 
						||
        $this->image = "/image/" . $this->ciBase64($value);
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 图片水印位置,九宫格位置(参考九宫格方位图 ),默认值 SouthEast
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setGravity($value) {
 | 
						||
        $this->gravity = "/gravity/" . $value;
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 水平(横轴)边距,单位为像素,缺省值为0
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setDx($value) {
 | 
						||
        $this->dx = "/dx/" . $value;
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 垂直(纵轴)边距,单位为像素,默认值为0
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setDy($value) {
 | 
						||
        $this->dy = "/dy/" . $value;
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 水印图适配功能,适用于水印图尺寸过大的场景(如水印墙)。共有两种类型:
 | 
						||
     * 当 blogo 设置为1时,水印图会被缩放至与原图相似大小后添加
 | 
						||
     * 当 blogo 设置为2时,水印图会被直接裁剪至与原图相似大小后添加
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setBlogo($value) {
 | 
						||
        $this->blogo = "/blogo/" . $value;
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 根据原图的大小,缩放调整水印图的大小:
 | 
						||
     * 当 scatype 设置为1时,按原图的宽缩放
 | 
						||
     * 当 scatype 设置为2时,按原图的高缩放
 | 
						||
     * 当 scatype 设置为3时,按原图的整体面积缩放
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setScatype($value) {
 | 
						||
        $this->scatype = "/scatype/" . $value;
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 与 scatype 搭配使用:
 | 
						||
     * 当 scatype 设置为1时,该有效值为[1,1000],单位为千分比
 | 
						||
     * 当 scatype 设置为2时,该有效值为[1,1000],单位为千分比
 | 
						||
     * 当 scatype 设置为3时,该有效值为[1,250],单位为千分比。
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setSpcent($value) {
 | 
						||
        $this->spcent = "/spcent/" . $value;
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 图片水印的透明度,取值为1 - 100,默认90(90%不透明度)
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setDissolve($value) {
 | 
						||
        $this->dissolve = "/dissolve/" . $value;
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 平铺水印功能,可将图片水印平铺至整张图片。值为1时,表示开启平铺水印功能
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setBatch($value) {
 | 
						||
        $this->batch = "/batch/" . $value;
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 当 batch 值为1时生效。图片水印的旋转角度设置,取值范围为0 - 360,默认0
 | 
						||
     * @param $value
 | 
						||
     */
 | 
						||
    public function setDegree($value) {
 | 
						||
        $this->degree = "/degree/" . $value;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getImage() {
 | 
						||
        return $this->image;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getGravity() {
 | 
						||
        return $this->gravity;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getDx() {
 | 
						||
        return $this->dx;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getDy() {
 | 
						||
        return $this->dy;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getBlogo() {
 | 
						||
        return $this->blogo;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getScatype() {
 | 
						||
        return $this->scatype;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getSpcent() {
 | 
						||
        return $this->spcent;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getDissolve() {
 | 
						||
        return $this->dissolve;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getBatch() {
 | 
						||
        return $this->batch;
 | 
						||
    }
 | 
						||
 | 
						||
    public function getDegree() {
 | 
						||
        return $this->degree;
 | 
						||
    }
 | 
						||
 | 
						||
    public function queryString() {
 | 
						||
        $head = "watermark/1";
 | 
						||
        $res = "";
 | 
						||
        if($this->image) {
 | 
						||
            $res .= $this->image;
 | 
						||
        }
 | 
						||
        if($this->gravity) {
 | 
						||
            $res .= $this->gravity;
 | 
						||
        }
 | 
						||
        if($this->dx) {
 | 
						||
            $res .= $this->dx;
 | 
						||
        }
 | 
						||
        if($this->dy) {
 | 
						||
            $res .= $this->dy;
 | 
						||
        }
 | 
						||
        if($this->blogo) {
 | 
						||
            $res .= $this->blogo;
 | 
						||
        }
 | 
						||
        if($this->scatype) {
 | 
						||
            $res .= $this->scatype;
 | 
						||
        }
 | 
						||
        if($this->spcent) {
 | 
						||
            $res .= $this->spcent;
 | 
						||
        }
 | 
						||
        if($this->dissolve) {
 | 
						||
            $res .= $this->dissolve;
 | 
						||
        }
 | 
						||
        if($this->batch) {
 | 
						||
            $res .= $this->batch;
 | 
						||
        }
 | 
						||
        if($this->degree) {
 | 
						||
            $res .= $this->degree;
 | 
						||
        }
 | 
						||
        if($res) {
 | 
						||
            $res = $head . $res;
 | 
						||
        }
 | 
						||
        return $res;
 | 
						||
    }
 | 
						||
 | 
						||
    public function resetRule() {
 | 
						||
        $this->image = "";
 | 
						||
        $this->gravity = "";
 | 
						||
        $this->dx = "";
 | 
						||
        $this->dy = "";
 | 
						||
        $this->blogo = "";
 | 
						||
        $this->scatype = "";
 | 
						||
        $this->spcent = "";
 | 
						||
        $this->dissolve = "";
 | 
						||
        $this->batch = "";
 | 
						||
        $this->degree = "";
 | 
						||
    }
 | 
						||
}
 |