如何在PHP Laravel中添加具有不同位置的水印图像?

问题描述 投票:1回答:2

嗨,我想添加不同位置的水印图像,如

top-lefttop-rightbottom-leftbottom-rightcenter

管理员在setting选项卡中选择上述位置之一。我正在使用Orakuploader插件,在该插件中,水印出现在上传图像的中心。

这是center位置的水印图像代码:

function addWatermark($watermark, $imageDirectory, $imageName, $x = 0, $y = 0)
{
    if(file_exists($watermark))
    {
        $marge_right  = 0;
        $marge_bottom = 0;

        $stamp = imagecreatefrompng($watermark);

        $image_extension = @end(explode(".", $imageName));
        switch($image_extension)
        {
            case "jpg":
                $im = imagecreatefromjpeg("$imageDirectory/$imageName");
                break;
            case "jpeg":
                $im = imagecreatefromjpeg("$imageDirectory/$imageName");
                break;
            case "png":
                $im = imagecreatefrompng("$imageDirectory/$imageName");
                break;
        }

        $imageSize = getimagesize("$imageDirectory/$imageName");
        $watermark_o_width = imagesx($stamp);
        $watermark_o_height = imagesy($stamp);

        $newWatermarkWidth = $imageSize[0];
        $newWatermarkHeight = $watermark_o_height * $newWatermarkWidth / $watermark_o_width;


        if((int)$x <= 0)
            $x = $imageSize[0]/2 - $newWatermarkWidth/2;
        if((int)$y <= 0)
            $y = $imageSize[1]/2 - $newWatermarkHeight/2;

        imagecopyresized($im, $stamp, $x, $y, 0, 0, $newWatermarkWidth, $newWatermarkHeight, imagesx($stamp), imagesy($stamp));

        switch($image_extension)
        {
            case "jpg":
                header('Content-type: image/jpeg');
                imagejpeg($im, "$imageDirectory/$imageName", 100);
                break;
            case "jpeg":
                header('Content-type: image/jpeg');
                imagejpeg($im, "$imageDirectory/$imageName", 100);
                break;
            case "png":
                header('Content-type: image/png');
                imagepng($im, "$imageDirectory/$imageName");
                break;
        }
    }
}

如何添加水印与其他位置,如(qazxsw poi,qazxsw poi,qazxsw poi和qazxsw poi)?

非常感谢您的帮助。谢谢

php laravel image-uploading watermark
2个回答
2
投票

嘿Dude尝试用top-left函数替换此代码。我希望它能为你效劳。谢谢。

top-right

1
投票

我建议你为此目的使用干预图像库。它具有强大而富有表现力的API

对于具有不同定位的水印,您可以参考此页面

bottom-left

你最终应该得到这样的东西

bottom-right
© www.soinside.com 2019 - 2024. All rights reserved.