图片处理类和文件上传类紧密相关,对于上传的图片文件需要进行缩略处理,还需要加水印处理。 或者针对已有的文件进行缩略或者加水印处理。
下面介绍基本的组成和使用方法,欲知更详细的信息可以参考源代码。
//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方法指定
/** * 配置函数 * * @param array $config: 配置数组,对应的key和变量对应 * @return void */ function config($config) { }
该方法通过传入一个对应与成员变量的key的数组来设置成员变量。
/** * 初始化函数 * * @param string $targetFile: 需要处理的目标图片文件地址 * @param array $upFile: 目标图片的一些文件信息 * @return void */ function image($targetFile, $upFile = array()) { }
该方法为后面处理做初始化准备。
/** * 根据指定大小生成缩略图(使用GD库) * * @param int $thumbWidth: 指定缩略图的宽 * @param int $thumbHeight: 指定缩略图的高 * @return void */ function thumb($thumbWidth = '', $thumbHeight = '', $targetFile = '', $upFile = '') { }
该方法给目标文件生成指定大小的缩略图。
/** * 给图片增加水印(使用GD库) * @return void */ function waterMark($targetFile = '' , $upFile = '') { }
该方法为给指定的目标文件加水印。通过 $this→upFile 返回。
/** * 根据指定存储的方式取得上传子目录 * * @return void */ function getSubDir() { }
该方法为是生成一个子缩略图文件目录。对缩略图文件进行按照日期分目录存储。方便以后管理和上传文件的读取。
/** * 返回随机字符 * @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();