<?php
/**
* Created by PhpStorm.
* User: Abo
* Date: 2016/1/6 0006
* Time: 下午 3:37
*/
class ImageTool{
private $info;
private $image;
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 getImage(){
return $this->image;
}
public function getInfo(){
return $this->info;
}
/**
* 图片压缩
* @param $width
* @param $height
*/
public function thumb($width,$height){
$image_thumb=imagecreatetruecolor($width,$height);
imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height,$this->info['width'],$this->info['height']);
imagedestroy($this->image);
$this->image=$image_thumb;
}
/**
* 字体水印(默认左下角)
* @param $fontfile 字体文件consolaz.ttf
* @param $text 水印内容
*/
public function fontMark($fontfile,$text){
//红绿蓝=白+50透明度字体
$col=imagecolorallocatealpha($this->image, 255, 255, 255, 50);
//图片字体合成-参数:图像,字体大小,偏转角度,横向偏移,纵向偏移,颜色,字体文件,内容
imagettftext($this->image, 50, 0, 40, $this->info['height']-50, $col, $fontfile, $text);
}
/**
* 图片水印
* @param $water 水印图片
* @param $waterInfo 水印图片信息
*/
public function imageMark($water,$waterInfo){
imagecopymerge($this->image,$water,20,30,0,0,$waterInfo['width'],$waterInfo['height'],20);
/*图片合成-参数:目标图片,水印图片,横向偏移,纵向偏移,
*水印图片x处开始复制,水印图片的y处开始复制,
*水印图片x处结束复制,水印图片y处结束复制,水印图片的透明度。
*/
imagedestroy($water);
}
public function showInHtml(){
header("content-type:".$this->info['mime']);
$funs="image{$this->info['type']}";
$funs($this->image);
}
/**
* 保存图片
* @param $newName 保存文件名
*/
public function saveImage($newName){
$funs="image{$this->info['type']}";
$funs($this->image,"$newName.".$this->info['type']);//保存图片
}
public function __destruct(){
imagedestroy($this->image);
}
}
本文出自 “从头越” 博客,转载请与作者联系!