1: 面向过程的编写方法
//指定图片路径$src= '001.png';//获取图片信息$info=getimagesize($src);//获取图片扩展名$type= image_type_to_extension($info[2],false);//动态的把图片导入内存中$fun= "imagecreatefrom{$type}";$image=$fun('001.png');//指定字体颜色$col= imagecolorallocatealpha($image,255,255,255,50);//指定字体内容$content= 'helloworld';//给图片添加文字imagestring($image,5,20,30,$content,$col);//指定输入类型header('Content-type:'.$info['mime']);//动态的输出图片到浏览器中$func= "image{$type}";$func($image);//销毁图片imagedestroy($image);
2:面向对象的实现方法
classImage_class {PRivate$image;private$info;/**
* @param $src:图片路径
* 加载图片到内存中*/function__construct($src){$info=getimagesize($src);$type= image_type_to_extension($info[2],false);$this-> info =$info;$this->info['type'] =$type;$fun= "imagecreatefrom" .$type;$this-> image =$fun($src);
}/**
* @param $fontsize: 字体大小
* @param $x: 字体在图片中的x位置
* @param $y: 字体在图片中的y位置
* @param $color: 字体的颜色是一个包含rgba的数组
* @param $text: 想要添加的内容
* 操作内存中的图片,给图片添加文字水印*/publicfunctionfontMark($fontsize,$x,$y,$color,$text){$col= imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);
imagestring($this->image,$fontsize,$x,$y,$text,$col);
}/** 输出图片到浏览器中*/publicfunctionshow(){header('content-type:' .$this-> info['mime']);$fun='image' .$this->info['type'];$fun($this->image);
}/**
* 销毁图片*/function__destruct(){
imagedestroy($this->image);
}
}//对类的调用$obj=newImage_class('001.png');$obj->fontMark(20,20,30,array(255,255,255,60),'hello');$obj->show();