<?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']);
}
}
?>
打开App,阅读手记