正确代码的写法

来源:5-1 封装成类—压缩图片

慕雪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);

}

}


写回答 关注

1回答

  • 自由的气息
    2017-06-20 22:19:56

    嗯,有什么问题吗?

GD库实现图片水印与缩略图

带你快速高效的完成图片处理工作,还可以加深对面向对象的理解

19006 学习 · 162 问题

查看课程

相似问题