Swoole\Image::addWaterMark PHP Method

addWaterMark() public static method

加给图片加水印
public static addWaterMark ( string $groundImage, integer $waterPos, string $waterImage = "", string $waterText = "", integer $textFont = 15, string $textColor = "#FF0000", integer $minWidth = 100, integer $minHeight = 100, float $alpha = 0.9 ) : FALSE
$groundImage string 要加水印地址
$waterPos integer 水印位置
$waterImage string 水印图片地址
$waterText string 文本文字
$textFont integer 文字大小
$textColor string 文字颜色
$minWidth integer 小于此值不加水印
$minHeight integer 小于此值不加水印
$alpha float 透明度
return FALSE
    public static function addWaterMark($groundImage, $waterPos = 0, $waterImage = "", $waterText = "", $textFont = 15, $textColor = "#FF0000", $minWidth = 100, $minHeight = 100, $alpha = 0.9)
    {
        if (!class_exists('\\Imagick', false)) {
            return self::addWaterMark2($groundImage, $waterPos, $waterImage, $waterText, $textFont, $textColor, $minWidth, $minHeight, $alpha);
        }
        if (empty($waterText) and !is_file($waterImage)) {
            return false;
        }
        $bg = null;
        $bg_h = $bg_w = $water_h = $water_w = 0;
        //获取背景图的高,宽
        if (is_file($groundImage) && !empty($groundImage)) {
            $bg = new \Imagick();
            $bg->readImage($groundImage);
            $bg_h = $bg->getImageHeight();
            $bg_w = $bg->getImageWidth();
        }
        //获取水印图的高,宽
        $water = new \Imagick($waterImage);
        $water_h = $water->getImageHeight();
        $water_w = $water->getImageWidth();
        //如果背景图的高宽小于水印图的高宽或指定的高和宽则不加水印
        if ($bg_h < $minHeight || $bg_w < $minWidth || $bg_h < $water_h || $bg_w < $water_w) {
            return false;
        }
        //加水印
        $dw = new \ImagickDraw();
        //加图片水印
        if (is_file($waterImage)) {
            $water->setImageOpacity($alpha);
            $dw->setGravity($waterPos);
            $dw->composite($water->getImageCompose(), 0, 0, 50, 0, $water);
            $bg->drawImage($dw);
            if (!$bg->writeImage($groundImage)) {
                return false;
            }
        } else {
            //加文字水印
            $dw->setFontSize($textFont);
            $dw->setFillColor($textColor);
            $dw->setGravity($waterPos);
            $dw->setFillAlpha($alpha);
            $dw->annotation(0, 0, $waterText);
            $bg->drawImage($dw);
            if (!$bg->writeImage($groundImage)) {
                return false;
            }
        }
        return true;
    }