日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

我們有時需要對推片打上水印,防止別人盜用,thinkphp 自己的水印功能只能選擇位置添加水印,但是有時候圖片某些位置比較干凈(空白部分),很容易處理掉,這樣就無法起到防止盜用圖片的效果。

這篇教程分享一下使用 ThinkPHP5 實現圖片水印平鋪的效果。

關鍵代碼操作

1、打開第三方類庫文件:vendor\topthink\think-image\src\Image.php

2、把下面代碼復制到上方地址的圖片處理類庫中(即增加一個圖片處理方法)

/**
 * 添加圖片水印平鋪
 *
 * @param  string $source 水印圖片路徑
 * @param int     $alpha  透明度
 * @return $this
 */
public function tilewater($source, $alpha = 100)
{
    if (!is_file($source)) {
        throw new ImageException('水印圖像不存在');
    }
    //獲取水印圖像信息
    $info = getimagesize($source);
    
    if (false === $info || (IMAGETYPE_GIF === $info[2] && empty($info['bits']))) {
        throw new ImageException('非法水印文件');
    }
    //創建水印圖像資源
    $fun   = 'imagecreatefrom' . image_type_to_extension($info[2], false);
    $water = $fun($source);
    //設定水印圖像的混色模式
    imagealphablending($water, true);
    do {
        //添加水印
        $src = imagecreatetruecolor($info[0], $info[1]);
        // 調整默認顏色
        $color = imagecolorallocate($src, 255, 255, 255);
        imagefill($src, 0, 0, $color);
        //循環平鋪水印
        for ($x = 0; $x < $this->info['width']-10; $x) {
            for ($y = 0; $y < $this->info['height']-10; $y) {
                imagecopy($src, $this->im, 0, 0, $x, $y, $info[0], $info[1]);
                imagecopy($src, $water, 0, 0, 0, 0, $info[0], $info[1]);
                imagecopymerge($this->im, $src, $x, $y, 0, 0, $info[0], $info[1], $alpha);
                $y += $info[1];
            }
            $x += $info[0];
        }
        //銷毀臨時圖片資源
        imagedestroy($src);
    } while (!empty($this->gif) && $this->gifNext());
    //銷毀水印資源
    imagedestroy($water);
    return $this;
}

使用方法:

注意:僅供參考,你可以改造到你的項目的上傳圖片部分!

use think\Image;
class ....
public function test(){
    $image = Image::open('bg.jpg');
    // 給原圖設置水印圖片(colleced.png)并保存 water_image.png(可以帶路徑)
    $image->tilewater('colleced.png',100)->save('water_image.png');
    echo "<img src='/water_image.png'/>";
}

效果如下:

5f6c62e7a9412.jpg

分享到:
標簽:ThinkPHP5 圖片水印 水印平鋪效果
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定