日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php铺满,重复铺满水印 - Jun. - OSCHINA - 中文开源技术交流社区

發布時間:2024/9/27 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php铺满,重复铺满水印 - Jun. - OSCHINA - 中文开源技术交流社区 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*

$tmp="tmp/a.jpg";

$obj = new WaterMask($tmp);

$obj->waterImg = 'sy_logo.png';

$obj->transparent = 50;

$obj->output();

*/

class WaterMask{

public $pos = 0; //水印位置

public $transparent = 45; //水印透明度

public $waterImg = ''; //水印圖片

private $srcImg = ''; //需要添加水印的圖片

private $im = ''; //圖片句柄

private $water_im = ''; //水印圖片句柄

private $srcImg_info = ''; //圖片信息

private $waterImg_info = ''; //水印圖片信息

function __construct($img) { //析構函數

$this->srcImg = file_exists($img) ? $img : die('"'.$img.'" 源文件不存在!');

}

private function imginfo() { //獲取需要添加水印的圖片的信息,并載入圖片。

$this->srcImg_info = getimagesize($this->srcImg);

switch ($this->srcImg_info[2]) {

case 3:

$this->im = imagecreatefrompng($this->srcImg);

break 1;

case 2:

$this->im = imagecreatefromjpeg($this->srcImg);

break 1;

case 1:

$this->im = imagecreatefromgif($this->srcImg);

break 1;

default:

die('原圖片('.$this->srcImg.')格式不對,只支持PNG、JPEG、GIF。');

}

}

private function waterimginfo() { //獲取水印圖片的信息,并載入圖片。

$this->waterImg_info = getimagesize($this->waterImg);

switch ($this->waterImg_info[2]) {

case 3:

$this->water_im = imagecreatefrompng($this->waterImg);

break 1;

case 2:

$this->water_im = imagecreatefromjpeg($this->waterImg);

break 1;

case 1:

$this->water_im = imagecreatefromgif($this->waterImg);

break 1;

default:

die('水印圖片('.$this->srcImg.')格式不對,只支持PNG、JPEG、GIF。');

}

}

private function waterimg() {

if ($this->srcImg_info[0] <= $this->waterImg_info[0] || $this->srcImg_info[1] <= $this->waterImg_info[1]){

die('水印比原圖大!');

}

$cut = imagecreatetruecolor($this->waterImg_info[0],$this->waterImg_info[1]);

$total=($this->srcImg_info[0]/$this->waterImg_info[0])*($this->srcImg_info[1]/$this->waterImg_info[1]);//重復次數

$x=10;$y=10;

for($i=0;$i<=$total;$i++){

if($y>$this->srcImg_info[1]){

$y=10;

$x+=$this->waterImg_info[0]+150;

}

imagecopy($cut,$this->im,0,0,$x,$y,$this->waterImg_info[0],$this->waterImg_info[1]);

imagecopy($cut,$this->water_im,0,0,0,0,$this->waterImg_info[0],$this->waterImg_info[1]);

imagecopymerge($this->im,$cut,$x,$y,0,0,$this->waterImg_info[0],$this->waterImg_info[1],$this->transparent);

$y+=150;

}

}

function output() {

$this->imginfo();

$this->waterimginfo();

$this->waterimg();

switch ($this->srcImg_info[2]) {

case 3:

imagepng($this->im,$this->srcImg);

break 1;

case 2:

imagejpeg($this->im,$this->srcImg);

break 1;

case 1:

imagegif($this->im,$this->srcImg);

break 1;

default:

die('添加水印失敗!');

break;

}

imagedestroy($this->im);

imagedestroy($this->water_im);

}

}

?>

總結

以上是生活随笔為你收集整理的php铺满,重复铺满水印 - Jun. - OSCHINA - 中文开源技术交流社区的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。