目录

MooPHP 图片类使用方法

图片处理类和文件上传类紧密相关,对于上传的图片文件需要进行缩略处理,还需要加水印处理。
或者针对已有的文件进行缩略或者加水印处理。
下面介绍基本的组成和使用方法,欲知更详细的信息可以参考源代码。

配置参数(成员变量)

	//note 返回的处理信息数组
	var $upFile = array();
 
	//note 缩略图开关 0为关闭 1为生成指定大小的缩略图 2把原图缩放为指定大小的缩略图
	var $thumbStatus = 1;
 
	//note 指定缩略图的宽
	var $thumbWidth = 400;
 
	//note 指定缩略图的高
	var $thumbHeight = 300;
 
	//note  jpeg 类型文件缩略图质量参数,范围为 0~100 的整数,数值越大结果图片效果越好
	var $thumbQuality = 100;
 
	//note 缩略图保存路径 为空的时候和源文件同目录, 指定的时候末尾需要加 /
	var $thumbDir = '';
 
	//note 缩略图的方式:0为不生成子目录,即全部保存在一个目录下  1 按月方式为一个子目录存储 2 按天方式为一个子目录存储
	var $saveType = 1;
 
	//note 缩略图名称: 空就在源文件名后加上 .thumb.jpg,  random 就是随机生成, 其他的就按照指定名称
	var $thumbName = '';
 
	//note 0 关闭水印 1左上 2中上 3右上 4中左  5正中  6中右 7左下 8中下 9右下
	var $waterMarkStatus = 0;
 
	//note 0 gif类型的文件作为水印 1 png类型的文件作为水印 2 文本类型水印
	var $waterMarkType = 0;
 
	//note 水印文件路径
	var $waterImagePath = './../Moo-data/images/';
 
	//note 添加水印的条件, 源图片的最小宽度
	var $waterMarkMinWidth = 0;
 
	//note 添加水印的条件,源图片的最小高度
	var $waterMarkMinHeight = 0;
 
	//note 水印融合度, 1~100 的整数,数值越大水印图片透明度越低
	var $waterMarkTrans = 65;
 
	//note jpeg 类型的图片添加水印后质量参数,范围为 0~100 的整数,数值越大结果图片效果越好
	var $waterMarkQuality = 100;
 
 

配置的参数比较多,这里的参数都可以通过config方法指定

方法 config(设置成员变量)

	/**
	 * 配置函数
	 *
	 * @param array $config: 配置数组,对应的key和变量对应
	 * @return void
	 */
	function config($config) {
	}

该方法通过传入一个对应与成员变量的key的数组来设置成员变量。

方法 image(初始化函数)

	/**
	 * 初始化函数
	 *
	 * @param string $targetFile: 需要处理的目标图片文件地址
	 * @param array $upFile: 目标图片的一些文件信息
	 * @return void
	 */
	function image($targetFile, $upFile = array()) {
	}

该方法为后面处理做初始化准备。

方法 thumb(生成指定大小缩略图)

	/**
	 * 根据指定大小生成缩略图(使用GD库)
	 *
	 * @param int $thumbWidth: 指定缩略图的宽
	 * @param int $thumbHeight: 指定缩略图的高
	 * @return void
	 */
	function thumb($thumbWidth = '', $thumbHeight = '', $targetFile = '', $upFile = '') {
 
	}
 

该方法给目标文件生成指定大小的缩略图。

方法 waterMark(生成水印)

	/**
	 * 给图片增加水印(使用GD库)
	 * @return void
	 */
	function waterMark($targetFile = '' , $upFile = '') {
	}

该方法为给指定的目标文件加水印。通过 $this→upFile 返回。

方法 getSubDir(生成存放文件子目录)

	/**
	 * 根据指定存储的方式取得上传子目录
	 *
	 * @return void
	 */
	function getSubDir() {
	}
 

该方法为是生成一个子缩略图文件目录。对缩略图文件进行按照日期分目录存储。方便以后管理和上传文件的读取。

方法 random(返回随机字符)

	/**
	 * 返回随机字符
	 * @param int $length  字符长度
	 * @param boolean $numeric  是否是数字
	 *
	 * @return string random string
	 */
	function random($length, $numeric = 0) {
	}
 

该方法为是返回指定长度的字符串,是为文件名重命名而准备的。

综合使用样例

//自动加载MooImage类
$image = MooAutoLoad('MooImage');
//配置相应参数。各个参数的意义可以看下面对应的说明
$image->config(array('waterMarkMinWidth' => '400', 'waterMarkMinHeight' => '300', 'waterMarkStatus' => 9));
//对文件 ./../Moo-data/attachments/2.jpg 生成200 X 260 的缩略图
$image->thumb(200, 260, './../Moo-data/attachments/2.jpg');
//给文件 ./../Moo-data/attachments/2.jpg 加水印
$image->waterMark();