Cml\Vendor\Image::addWaterMark PHP Метод

addWaterMark() публичный статический Метод

图片打水印
public static addWaterMark ( string $sourceImage, string $waterMarkImage, null | string $saveName = null, integer $alpha = 80, null $positionW = null, null $positionH = null, integer $quality = 100 ) : mixed
$sourceImage string 源图片
$waterMarkImage string 水印
$saveName null | string 保存路径,默认为覆盖原图
$alpha integer 水印透明度
$positionW null 水印位置 相对原图横坐标
$positionH null 水印位置 相对原图纵坐标
$quality integer 生成的图片的质量 jpeg有效
Результат mixed
    public static function addWaterMark($sourceImage, $waterMarkImage, $saveName = null, $alpha = 80, $positionW = null, $positionH = null, $quality = 100)
    {
        if (!is_file($sourceImage) || !is_file($waterMarkImage)) {
            return false;
        }
        //获取图片信息
        $sourceImageInfo = self::getImageInfo($sourceImage);
        $waterMarkImageInfo = self::getImageInfo($waterMarkImage);
        if ($sourceImageInfo['width'] < $waterMarkImageInfo['width'] || $sourceImageInfo['height'] < $waterMarkImageInfo['height'] || $sourceImageInfo['ext'] == 'bmp' || $waterMarkImageInfo['bmp']) {
            return false;
        }
        //创建图像
        $sourceImageCreateFunc = "imagecreatefrom{$sourceImageInfo['ext']}";
        $sourceCreateImage = $sourceImageCreateFunc($sourceImage);
        $waterMarkImageCreateFunc = "imagecreatefrom{$waterMarkImageInfo['ext']}";
        $waterMarkCreateImage = $waterMarkImageCreateFunc($waterMarkImage);
        //设置混色模式
        imagealphablending($waterMarkImage, true);
        $posX = is_null($positionW) ? $sourceImageInfo['width'] - $waterMarkImageInfo['width'] : $sourceImageInfo['width'] - $positionW;
        $posY = is_null($positionH) ? $sourceImageInfo['height'] - $waterMarkImageInfo['height'] : $sourceImageInfo['height'] - $positionH;
        //生成混合图像
        imagecopymerge($sourceCreateImage, $waterMarkCreateImage, $posX, $posY, 0, 0, $waterMarkImageInfo['width'], $waterMarkImageInfo['height'], $alpha);
        //生成处理后的图像
        if (is_null($saveName)) {
            $saveName = $sourceImage;
            @unlink($sourceImage);
        }
        self::output($sourceCreateImage, $sourceImageInfo['ext'], $saveName, $quality);
        return true;
    }