/** * Add Watermark as Image * * @param $image_path - Image path to place as watermark on image * @param $vertical_position - Set vertical position of the text that will be placed on image * @param $horizontal_position - Set horizonal position of the text that will be placed on image * @param $margin - Margin text by spacing from corners * @return void */ public function addWatermarkImage($image_path, $vertical_position, $horizontal_position, $margin = 5) { if (file_exists($image_path)) { $valid_vpositions = array(self::IMAGE_POSITION_TOP, self::IMAGE_POSITION_CENTER, self::IMAGE_POSITION_BOTTOM); $valid_hpositions = array(self::IMAGE_POSITION_LEFT, self::IMAGE_POSITION_CENTER, self::IMAGE_POSITION_RIGHT); $watermark = new ImageTools($image_path); if (in_array($vertical_position, $valid_vpositions, true) && in_array($horizontal_position, $valid_hpositions, true)) { $x_padd = 0; $y_padd = 0; $w_width = $watermark->getX(); $w_height = $watermark->getY(); $im_width = $this->getX(); $im_height = $this->getY(); // Set X-Position if ($horizontal_position == self::IMAGE_POSITION_LEFT) { $x_padd = $margin; } else { if ($horizontal_position == self::IMAGE_POSITION_CENTER) { $x_padd = floor($im_width / 2) - floor($w_width / 2); } else { $x_padd = $im_width - $w_width - $margin; } } // Set Y-Position if ($vertical_position == self::IMAGE_POSITION_CENTER) { $y_padd = floor($im_height / 2) - floor($w_height / 2); } else { if ($vertical_position == self::IMAGE_POSITION_BOTTOM) { $y_padd = $im_height - floor($w_height) - $margin; } else { $y_padd += $margin; } } imagecopy($this->im, $watermark->getIm(), $x_padd, $y_padd, 0, 0, imagesx($watermark->getIm()), imagesy($watermark->getIm())); //$watermark->destroy(); } else { $this->parseError("Invalid Watermark image position!"); } } else { $this->parseError("Invalid image path!"); } }