慕雪5265399
2017-04-09 14:24
<?php
class Image{
/*打开图片*/
private $info;
private $image;
private $imagemark;
private $type;
public function __construct($src){
//配置图片路径
$imagesrc=$src;
//获取图片信息
$this->info=getimagesize($imagesrc);
$this->info=array(
"width"=>$this->info[0],
"height"=>$this->info[1],
"type"=>image_type_to_extension($this->info[2],FALSE),
"mime"=>$this->info["mime"],
);
//根据图片的编号获得图片的类型
$this->type=$this->info["type"];
//在内存中创建一个和我们图片类型一样的对象
$func="imagecreatefrom{$this->type}";
$this->image=$func($imagesrc);
}
/*操作图片*/
/*给图片添加文字水印*/
public function fontmark(){
//设置字体路径
$font="msyh.ttf";
//设置文字内容
$content="hello world";
//设置文字水印透明度
$color=imagecolorallocatealpha($this->image,255,0,0,50);
//添加水印
imagettftext($this->image,20,0,20,200,$color,$font,$content);
}
/*给图片添加图片水印*/
public function imagemark(){
//配置图片路径
$imagemark='logo.jpg';
//获取图片信息
$this->info=getimagesize($imagemark);
$this->info=array(
"width"=>$this->info[0],
"height"=>$this->info[1],
"type"=>image_type_to_extension($this->info[2],FALSE),
"mime"=>$this->info["mime"],
);
//根据图片的编号获得图片的类型
$this->type=$this->info["type"];
//在内存中创建一个和我们图片类型一样的对象
$func="imagecreatefrom{$this->type}";
$this->imagemark=$func($imagemark);
imagecopymerge($this->image,$this->imagemark,0,0,100,90,200,40,100);
}
/*将图片按照一定大小进行缩略*/
public function thumb(){
//创建一个大小固定的真空彩色图像
$imagethumb=imagecreatetruecolor(100,100);
//将原图缩略成我们所指定的图像大小
imagecopyresampled($imagethumb,$this->image,0,0,0,0,100,100,$this->info["width"],$this->info["height"]);
$this->image=$imagethumb;
}
/*输出图片*/
public function outputimage(){
//print_r($this->type);die();
header("content-type:".$this->info["mime"]);
$func="image{$this->type}";
$func($this->image);
}
/*销毁图片*/
function destroy(){
imagedestroy($this->image);
}
}
嗯,有什么问题吗?
GD库实现图片水印与缩略图
19006 学习 · 162 问题
相似问题