如何在php中设置水印图像

时间:2019-07-25 05:45:49

标签: php laravel

我在两个不同的上传图像中设置了相同大小的水印,但水印大小相同,但是上传的图像的高度,宽度,大小和尺寸都不同。因此,在图像中设置水印的高度,宽度也不同。图片的水印?

请检查下面的图像链接。在此图像中“ ONLYGEMS”是水印。

1)http://groomies.cosmonautgroup.com/public/assets/image/2016-ford-focus-rs-front-4k-uhd-wallpaper-806x41915640362249.jpg

2)http://groomies.cosmonautgroup.com/public/assets/image/img_005215640307093.jpg

3)http://groomies.cosmonautgroup.com/public/assets/image/pgfaviconblck515640317244.png

$watermark      = imagecreatefrompng($watermark);

switch(mime_content_type($imageUrl)) {

case 'image/png':
        $image = imagecreatefrompng($imageUrl);
        break;
    case 'image/jpeg':
        $image          = imagecreatefromjpeg($imageUrl);
        break;
    case 'image/jpg':
        $image          = imagecreatefromjpeg($imageUrl);
        break;
    default:
        $image = null; 
}

$watermarkX     = imagesx($watermark);

$watermarkY     = imagesy($watermark);

$width          = imagesx($image);

$height         = imagesy($image);

$xPosition      = $width / 8;

$yPosition      = $height - ($height /3);

$img_w = imagesx($image);

$img_h = imagesy($image);

$wtrmrk_w = imagesx($watermark);

$wtrmrk_h = imagesy($watermark);

$dst_x = ($img_w / 2) - ($wtrmrk_w / 2); // For centering the watermark on any image

$dst_y = ($img_h / 2) - ($wtrmrk_h / 2); // For centering the watermark on any image

imagecopy($image, $watermark, $dst_x, $dst_y, 0, 0, $wtrmrk_w, $wtrmrk_h);

switch(mime_content_type($imageUrl)) {
  case 'image/png':
    imagepng($image,$imageUrl);
    break;
  case 'image/jpeg':
    imagejpeg($image,$imageUrl,100);
    break;
  default:
    $image = null; 
}

1 个答案:

答案 0 :(得分:0)

您可以使用以下库:http://image.intervention.io/ Intervention Image是一个开源的PHP图像处理和操作库。它提供了一种创建,编辑和合成图像的简便且富有表现力的方式,并支持当前两个最常见的图像处理库GD Library和Imagick。