经常会看到有些比如身份证照片等等为了防止被盗用, 经常会加上全屏水印,今天我是为了给一份合同添加水印~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
$bigImgPath = "bgt.jpg"; //原图 $logo = "logo.png"; //水印 $im = imagecreatefromstring(file_get_contents($bigImgPath)); //获取水印源 $watermark = imagecreatefromstring(file_get_contents($logo)); //获取图、水印 宽高类型 list($bgWidth, $bgHight, $bgType) = getimagesize($bigImgPath); list($logoWidth, $logoHight, $logoType) = getimagesize($logo); //定义平铺数据 $x_length = $bgWidth - 10; //x轴总长度 $y_length = $bgHight - 10; //y轴总长度 //创建透明画布 伪白色 $opacity=20; $w = imagesx($watermark); $h = imagesy($watermark); $cut = imagecreatetruecolor($w,$h); $white = imagecolorallocatealpha($cut, 255,255,255,0); imagefill( $cut, 0, 0, $white ); //整合水印 imagecopy($cut, $watermark, 0, 0, 0, 0, $w, $h); //循环平铺水印 for ($x = 0; $x < $x_length; $x++) { for ($y = 0; $y < $y_length; $y++) { imagecopymerge($im, $cut, $x, $y, 0, 0, $logoWidth, $logoHight, $opacity); $y += $logoHight; } $x += $logoWidth; } //header("Content-type:image/png"); // imagejpeg 的第二个参数不传, 默认是显示图片 imagejpeg($im,'hhh.jpg'); |
生成的效果如下:
这个logo 图片我用ps转了45°角,如果不转, 水印就是横向的平铺,不是很好看!