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