/** * * 根据模型,获取文件路径 * @param unknown_type $model * @param unknown_type $path * @param unknown_type $isUploadPath * @param unknown_type $width */ public function generateFileName($model, $path, $isUploadPath = true, $width = null) { $result = ''; if ($isUploadPath) { $result = '.'; } $result .= Yii::app()->params->uploadPath[$path]; $result .= date('Y', $model->created) . '/' . date('m', $model->created) . '/' . date('d', $model->created) . '/'; $result .= md5($model->name) . $model->created; if ($width) { $result .= '_'; } $result .= $width . '.' . $model->ext; if (!is_dir(dirname($result))) { UtilHelper::createFolder(dirname($result)); } return $result; }
public function generateUserAvatars($model, $size = 60, $path = 'avatar') { $origion = File::model()->generateFileName($model, $path, true); $src = File::model()->generateFileName($model, $path, true, 150); $des = File::model()->generateFileName($model, $path, true, $size); if (!file_exists($des)) { if (!is_dir(dirname($des))) { UtilHelper::createFolder(dirname($des)); } if (file_exists($src)) { $t = new ThumbHandler(); $t->setSrcImg($src); $t->setCutType(1); //指明为手工裁切 // $t->setSrcCutPosition(100, 100);// 源图起点坐标 $t->setRectangleCut($size, $size); // 裁切尺寸 $t->setImgDisplayQuality(90); $t->setDstImg($des); $t->createImg(150, 150); } elseif (file_exists($origion)) { $t = new ThumbHandler(); $t->setSrcImg($origion); $t->setCutType(2); $t->setSrcCutPosition(0, 0); $t->setRectangleCut($size, $size); $t->setImgDisplayQuality(90); $t->setDstImg($des); $width = $t->getSrcImgWidth(); $height = $t->getSrcImgHeight(); if ($width >= $height) { $t->createImg($height, $height); } else { $t->createImg($width, $width); } } } }