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