php实现图片加文字 图案水印,PHP实现图片加文字水印,图片水印,压缩图片的封装...

/**

* 图片加文字水印,图片水印,压缩图片

* User: xiaoyu

* Date: 2019/4/12

* Time: 11:50

*/

class Image

{

private $image;

private $info;

//将图片保存到缓存中

//构造函数

public function __construct($src)

{

//获取图片信息

$info = getimagesize($src);

$this->info = array(

'width' => $info[0],

'height' => $info[1],

'type' => image_type_to_extension($info[2], false),

'mime' => $info['mime']

);

//在内存中创建一个和我们图像类型一样的图像

$fun = "imagecreatefrom{$this->info['type']}";

//把图片复制到我们的内存中

$this->image = $fun($src);

}

//析构函数

public function __destruct()

{

imagedestroy($this->image);

}

//图片加图片水印

public function watermark($source, $local, $alpha)

{

//获取水印图片的基本信息

$info2 = getimagesize($source);

$type2 = image_type_to_extension($info2[2], false);

$fun2 = "imagecreatefrom{$type2}";

$water = $fun2($source);

//合并图片

imagecopymerge($this->image, $water, $local['x'], $local['y'], 0, 0, $info2[0], $info2[1], $alpha);

//销毁水印图片

imagedestroy($water);

}

//给图片加文字水印

public function fontmark($content, $font_url, $size, $color, $local, $angle)

{

//设置字体的颜色,透明度

$col = imagecolorallocatealpha($this->image, $color[0], $color[1], $color[2], $color[3]);

//写入文本

imagettftext($this->image, $size, $angle, $local['x'], $local['y'], $col, $font_url, $content);

}

//压缩图片

public function thumb($width, $height)

{

$image_thumb = imagecreatetruecolor($width, $height);

//将原图复制到新建的真色彩图片上,并按照一定比例压缩

imagecopyresampled($image_thumb, $this->image,

0, 0, 0, 0,

300, 300, $this->info['width'], $this->info['height']);

imagedestroy($this->image);

$this->image = $image_thumb;

}

//输出图片

public function outPut()

{

header("Content-type:" . $this->info['mime']);

$funs = "image{$this->info['type']}";

$funs($this->image);

}

//保存图片

public function save($name)

{

$funs = "image{$this->info['type']}";

$funs($this->image, $name . '.' . $this->info['type']);

}

}

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值