<?php
/**
* @desc 图片处理类
*/
class Pic{
private $info;
private $res;
public $thumb_pic;
public function __construct($picPath){
//获取图片信息
$this->info = getimagesize($picPath);
//获取图片名
$this->info['type'] = image_type_to_extension($this->info[2],false);
$funs = 'imagecreatefrom'.$this->info['type'];
$this->res = $funs($picPath);
}
//缩略图
public function thumb($w=100,$h=100){
//创建图片资源
$image_thumb = imagecreatetruecolor($w,$h);
imagecopyresampled($image_thumb,$this->res,0,0,0,0,$w,$h,$this->info[0],$this->info[1]);
imagedestroy($this->res);
$this->res = $image_thumb;
}
//展示
public function showPic(){
header('Content-type:'.$this->info['type']);
$funs = 'image'.$this->info['type'];
$funs($this->res);
}
//保存
public function savePic($newname){
$funs = 'image'.$this->info['type'];
$funs($this->res,$newname.".".$this->info['type']);
}
//销毁图片
public function __destruct(){
imagedestroy($this->res);
}
/**
* @desc 添加文字水印
* @param $content string 文字
* @param $fonturl string 字体路径
* @param $fontsize int 字体大小
* @param $fontcolor array 设置颜色和透明度
* @param $local array 水印坐标
* @param $fontangle int 字体旋转角度
*/
public function fontMark($content,$fonturl,$fontsize,$fontcolor,$local,$fontangle){
$color = imagecolorallocatealpha($this->res,$fontcolor[0],$fontcolor[1],$fontcolor[2],$fontcolor[3]);
imagettftext($this->res,$fontsize,$fontangel,$local['x'],$local['y'],$color,$fonturl,$content);
}
/**
* @desc 添加图片水印
* @param $markPic string 水印图片
* @param $local array 图片坐标
* @param $alpha array 设置颜色和透明度
*/
public function picMark($markPic,$local,$alpha){
$markInfo = getimagesize($markPic);
$markType = image_type_to_extension($markInfo[2],false);
$markFun = 'imagecreatefrom'.$markType;
$markWater = $markFun($markPic);
imagecopymerge($this->res,$markWater,$local['x'],$local['y'],0,0,$markInfo[0],$markInfo[1],$alpha);
imagedestroy($markWater);
}
}
$pic = new Pic('yibo_pic28.jpg');
$pic->picMark('logo3.png',array('x'=>50,'y'=>50),30);
$pic->showPic();