PHP Imagick添加文字水印

/**
     * [addText 资质证书添加文字水印]
     * @param  [type]  $path      [图片的绝对路劲]
     */
    public  function addText($path)
    {

        $waterText   = '今晚打老虎';
        $textColor   = 'white';
        $shadowColor = 'black';

        $textOpa     = 0.35;
        $letterSpace = 1;
        $fontSize    = 50;

        $image = new \Imagick($path);
        $imgProperty     = $image->getImageGeometry();
        $imgWidth       = $imgProperty['width'];
        $imgHeight      = $imgProperty['height'];
        $draw            = new \ImagickDraw();
        //字体文字地址
        $font = WEB_ROOT.'assets/fontawesome/webfonts/font.ttf';
        //设置水印字体文字
        $draw->setFont($font);
        $draw->setFillColor($textColor);
        $draw->setFillOpacity($textOpa);
        $draw->setTextKerning($letterSpace);
        $draw->setTextEncoding('UTF-8');
        $draw->setGravity(\Imagick::GRAVITY_CENTER);
        $draw->setFontSize($fontSize);
        // $draw->setFontWeight(100);
        $draw->annotation(0, 0, $waterText);
        $text   = new \Imagick();
        $metrix = $text->queryFontMetrics($draw, $waterText);

        $text->newImage($metrix['textWidth'], $metrix['textHeight'], 'none');
        $text->setImageFormat('png');
        $text->drawImage($draw);

        $shadow = clone $text;
        $shadow->setImageBackgroundColor(new \ImagickPixel($shadowColor));
        $shadow->shadowImage(50, 0.5, 0, 0);
        $shadow->compositeImage($text, \Imagick::COMPOSITE_OVER, 0, 0);
        //设置文字水印位置
        $image->compositeImage($shadow, $shadow->getImageCompose(), ($imgWidth - $metrix['textWidth']) - 20, ($imgHeight - $metrix['textHeight']) - 20);

//        return $image->writeImage($path);
         header("Content-Type: image/{$image->getImageFormat()}");
         echo $image->getImagesBlob();

    }

最后传参调用下就好了 t h i s − > a d d T e x t ( this->addText( this>addText(base_path.$url);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bonnyจุ๊บ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值