0
点赞
收藏
分享

微信扫一扫

php(GD库合成水印)

千行 2022-06-27 阅读 67

代码如下:

<?php
water('1.jpg');
function water($source,$water='3.jpg',$position=8,$alpha=100,
$type='jpeg',$path='test',$isRandName=false)
{
//打开图片
$sourceRse = open($source);
$waterRes = open($water);
//获取图片大小,算出来位置
$sourceInfo = getimagesize($source);
$waterInfo = getimagesize($water);
switch($position){
case 1:
$x = 0;
$y = 0;
break;
case 2:
$x = ($sourceInfo[0] - $waterInfo[0])/2;
$y = 0;
break;
case 3:
$x = $sourceInfo[0] - $waterInfo[0];
$y = 0;
break;
case 4:
$x = 0;
$y = ($sourceInfo[1] - $waterInfo[1])/2;
break;
case 5:
$x = ($sourceInfo[0] - $waterInfo[0])/2;
$y = ($sourceInfo[1] - $waterInfo[1])/2;
break;
case 6:
$x = $sourceInfo[0] - $waterInfo[0];
$y = ($sourceInfo[1] - $waterInfo[1])/2;
break;
case 7:
$x = 0;
$y = $sourceInfo[1] - $waterInfo[1];
break;
case 8:
$x = ($sourceInfo[0] - $waterInfo[0])/2;
$y = $sourceInfo[1] - $waterInfo[1];
break;
case 9:
$x = $sourceInfo[0] - $waterInfo[0];
$y = $sourceInfo[1] - $waterInfo[1];
echo $x.' '.$y;
break;
default:
$x = mt_rand(0,$sourceInfo[0] - $waterInfo[0]);
$y = mt_rand(0,$sourceInfo[1] - $waterInfo[1]);
break;
}
//合并图片到source上
imagecopymerge($sourceRse,$waterRes,$x,$y,0,0,$waterInfo[0],$waterInfo[1],$alpha);

if($isRandName){
//uniqid函数生成随机字符串。
$name = uniqid().'.'.$type;
}else{
$pathinfo = pathinfo($source);
$name = $pathinfo['filename'].'.'.$type;
}
//rtrim删除字符串末端的空白字符(或者其他字符)
$path = rtrim($path,'/').'/'.$name;
// 相当于调用了imagejpeg()函数,这操作。。
$func = 'image'.$type;
$func($sourceRse,$path);
imagedestroy($sourceRse);
imagedestroy($waterRes);
}
//打开图片的函数
function open($path)
{
//判断是否存在
if(!file_exists($path)){
exit('文件不存在');
}
$info = getimagesize($path);
//var_dump($info);
switch($info['mime']){
case 'image/jpeg':
case 'image/jpg':
case 'image/pjpeg':
$res = imagecreatefromjpeg($path);
break;
case 'image/png':
$res = imagecreatefrompng($path);
break;
case 'image/gif':
$res = imagecreatefromgif($path);
break;
case 'image/wbmp':
case 'image/bmp':
$res = imagecreatefromwbmp($path);
break;

}

return $res; //返回打开的资源
}

?>

getimagesize函数返回一个数组,包含了图片的宽和高,图片类型等信息。

php(GD库合成水印)_php

这个是getimagesize函数返回的数据。

php(GD库合成水印)_字符串_02

imagecopymerge函数用来拷贝合并图像。

php(GD库合成水印)_字符串_03

下面这个操作》》》》太秀了,只有php才这么叼吧,把字符串当对应函数用。。。。

php(GD库合成水印)_字符串_04

下面是imagejpeg函数:

php(GD库合成水印)_字符串_05

下面是一个骚操作的对应上面的例子,这下应该就很明显了。。

php(GD库合成水印)_字符串_06

返回了一个随机数。

php(GD库合成水印)_php_07


举报

相关推荐

0 条评论