/** * @param \PHPThumb\GD $phpthumb * @return \PHPThumb\GD */ public function execute($phpthumb) { $currentDimensions = $phpthumb->getCurrentDimensions(); $watermarkDimensions = $this->wm->getCurrentDimensions(); $watermarkPositionX = $this->offsetX; $watermarkPositionY = $this->offsetY; if (preg_match('/right|east/i', $this->position)) { $watermarkPositionX += $currentDimensions['width'] - $watermarkDimensions['width']; } else { if (!preg_match('/left|west/i', $this->position)) { $watermarkPositionX += intval($currentDimensions['width'] / 2 - $watermarkDimensions['width'] / 2); } } if (preg_match('/bottom|lower|south/i', $this->position)) { $watermarkPositionY += $currentDimensions['height'] - $watermarkDimensions['height']; } else { if (!preg_match('/upper|top|north/i', $this->position)) { $watermarkPositionY += intval($currentDimensions['height'] / 2 - $watermarkDimensions['height'] / 2); } } $workingImage = $phpthumb->getWorkingImage(); $watermarkImage = $this->wm->getWorkingImage() ? $this->wm->getWorkingImage() : $this->wm->getOldImage(); $this->imageCopyMergeAlpha($workingImage, $watermarkImage, $watermarkPositionX, $watermarkPositionY, 0, 0, $watermarkDimensions['width'], $watermarkDimensions['height'], $this->opacity); $phpthumb->setWorkingImage($workingImage); return $phpthumb; }