[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массив ссылок на изображения
howard
Скажите как правильно организовать следующее. Есть скрипт, который загружает изображения на сайт. В БД хранится только путь к оригинальному файлу. Далее происходит ресайз изображения под разные разрешения, ну например с такими именами 434das54r3_800x600.jpg, 434das54r3_1024x760.jpg 434das54r3_1440x900.jpg. Вот собственно задача следующая: в полной к оригинальному изображению нужно привязать массив ссылок на вот эти вот ресайзнутые копии. Как правильно поступить?

user posted image



Спустя 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));


и собственно в самом методе - ловить этом массив, разбирать и передавать далее ресайзу эти параметры картинки на выход.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.