
Спустя 26 минут, 17 секунд (26.08.2012 - 21:03) Игорь_Vasinsky написал(а):
не нужен массив ссылок, просто нужно в функцию (класс ресайза) - передавать эти параметры в качестве аргументов.
Спустя 4 часа, 19 минут, 21 секунда (27.08.2012 - 01:23) howard написал(а):
public function actionCreate()
{
Yii::import('application.extensions.image.Image'); //load library
// import the class
$model=new Images;
if(isset($_POST['Images'])){
$model->attributes=$_POST['Images'];
$model->image=CUploadedFile::getInstance($model,'image');
#echo $mime;
if(($model->validate() && $mime!=='image/jpeg') || ($model->validate() && $mime!=='image/png') || ($model->validate() && $mime!=='image/gif'))
{
$mime=$model->image->getType();
$rnd = rand(0,99999);
$ext='.'.$model->image->getExtensionName();
$path='images/';
$path_t='images/thumbs/';
$model->image->saveAs($path.$rnd.$ext); //saving loaded image from form
$model->image=new Image('images/'.$rnd.$ext); //using loaded image library
$model->image->resize(290, NULL)->crop(290, 181, 'center', 'center');;
$model->image->save($path_t.$rnd.$ext);
$w=$model->image->__get(width);
$h=$model->image->__get(height);
$pathDb='http://imscript/testdrive/'.$path.$rnd.$ext;
$pathDbThumb='http://imscript/testdrive/'.$path_t.$rnd.$ext;
echo $w.'x'.$h;
$command = Yii::app()->db->createCommand()->insert('images', array('path'=>$pathDbThumb));
Yii::app()->user->setFlash('success', "Ваше изображение было успешно загружено!");
#$model->image->saveAs('images/'.$rnd.'.jpg');
#$model->image->saveAs('images/thumbs/thumb_'.$rnd.'.jpg');
// перенаправляем на страницу, где выводим сообщение об
// успешной загрузке
}
else
Yii::app()->user->setFlash('error', "Файл не отвечает условиям загрузки!");
}
$this->render('create', array('model'=>$model));
}
Вот так у меня ресайз и кроп происходит, вот здесь каким образом это реализовать? Должен же быть массив с необходимыми разерешениями, типа:
array(
1440=>900,
1024=>760,
800=>600
)
А потом уже ресайзить, проходя по элементам этого массива и выводить ссылки .
Спустя 6 часов, 13 минут, 27 секунд (27.08.2012 - 07:36) Игорь_Vasinsky написал(а):
добавить в метод saveAs - второй аргумент - массив "разрешение"
и собственно в самом методе - ловить этом массив, разбирать и передавать далее ресайзу эти параметры картинки на выход.
$model->image->saveAs('images/'.$rnd.'.jpg', array(1280, 800));
и собственно в самом методе - ловить этом массив, разбирать и передавать далее ресайзу эти параметры картинки на выход.