最近因为工作挺忙的,好久没更新日志了,分享一个自己最近写的php图片操作类,提供给那些需要的朋友……<?php
/*
========================================================================================================================================
============================================================Image操作库=========================================================
========================================================================================================================================
实现图片的文字水印、图片水印、略缩图、以及生成这些图之后的保存
使用方式
1.__construct($src),初始化函数,需传入图片位置
2.thumb($width,$height),压缩图片函数,传入压缩后图片大小
3.show(),输出函数,将处理过后的图片输出到页面上
4.save($name),保存图片,需传入新图片的名称
5.textmark("neirong",$font,$x,$y),文字水印函数,需传入水印内容,字体类型,字体宽高。
6.imgMark($source,$local,$alpha),图片水印,需传入水印图片文件,水印显示的位置等(数组),水印透明度
*/
class Image{
public $image;//内存中的图片
public $info;//图片信息
public $type;//图片类型
public $font="msyh.ttf";//预置字体
/*进行图片初始化,在内存中建立图片*/
public function __construct($src){
$this->info=getimagesize($src);
$this->type=image_type_to_extension($this->info[2],false);
$fun="imagecreatefrom{$this->type}";
$this->image=$fun($src);
}
/*压缩图片*/
public function thumb($width,$height){
$image_thumb=imagecreatetruecolor($width, $height);
imagecopyresampled($image_thumb, $this->image, 0, 0, 0, 0, $width, $height, $this->info[0], $this->info[1]);
imagedestroy($this->image);
$this->image=$image_thumb;
}
/*输出图片*/
public function show(){
header("content-type:".$this->info['mime']);
$func="image{$this->type}";
$func($this->image);
}
/*保存图片*/
public function save($name='Newimage'){
header("content-type:".$info['mime']);
$func="image{$this->info[2]}";
$func($this->image,$name.'.'.$this->info[2]);
}
/*添加文字水印*/
public function textMark($content="watermark",$font="20",$x="20",$y="60"){
$color=imagecolorallocatealpha($this->image, 255, 255, 255, 30);//设置字体颜色、透明度,3个255是RGB白色
imagettftext($this->image, $font, 10, $x, $y, $color, $this->font, $content);/*为图片应用宽高,倾斜度,字体,内容*/
}
/*添加图片水印*/
public function imgMark($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[0], $local[1], 0, 0, $local[2], $local[3], $alpha);/*参数依次是源图片,水印图片,水印显示的坐标点,水印图片所开始取的位置,水印图片所取的宽度和高度,透明度*/
imagedestroy($this->image);
}
/*销毁图片*/
public function __destruct(){
imagedestroy($this->image);
}
}
?>