/** * Creates a new Supporters model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Supporters(); if ($model->load(Yii::$app->request->post())) { $imagename = Yii::$app->security->generateRandomString(); $model->photo = UploadedFile::getInstance($model, 'photo'); $model->photo->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imagename . '.' . $model->photo->extension); $model->photo = '/uploads/' . $imagename . '.' . $model->photo->extension; /*****imagine */ $imagine = new \Imagine\Imagick\Imagine(); //$imagine = new \Imagine\Gd\Imagine(); $watermark = $imagine->open('uploads/done.png'); $image = $imagine->open(Yii::getAlias('@frontend/web') . $model->photo); $size = $image->getSize(); $wSize = $watermark->getSize(); $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight()); $image->paste($watermark, $bottomRight); $image->save(Yii::getAlias('@frontend/web') . $model->photo); /* end */ $model->save(); return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('create', ['model' => $model]); } }
public static function getImages() { $imageDesignerImages = array(); $imagesDir = 'public/theme/images/image-designer'; $imagesThumpnailDir = 'public/uploads/image-designer'; if ($handle = opendir($imagesDir)) { $imagine = new Imagine\Imagick\Imagine(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if (!file_exists($imagesThumpnailDir)) { mkdir($imagesThumpnailDir, 0777, true); } if (!file_exists($imagesThumpnailDir . '/' . $file)) { $image = $imagine->open($imagesDir . '/' . $file); $image->resize(new \Imagine\Image\Box(128, 64))->save(APPPATH . '../' . $imagesThumpnailDir . '/' . $file); } $imageDesignerImages[] = array('image' => $imagesDir . '/' . $file, 'thumbnail' => $imagesThumpnailDir . '/' . $file); } } closedir($handle); } return $imageDesignerImages; }
public function crop_by_url($tmpfile, $scale_width, $x, $y, $w, $h) { $imagine = new Imagine\Imagick\Imagine(); $image = $imagine->open($tmpfile); $image->resize(new Imagine\Image\Box($scale_width, 0))->crop(new Imagine\Image\Point($x, $y), new Imagine\Image\Box($w, $h))->save($tmpfile); $uploader = new Uploader(); $uploader->process($tmpfile); return $uploader; }
public function actionFound() { if (!Yii::$app->user->isGuest) { $user_id = User::find()->where(['social_id' => Yii::$app->user->identity->id])->one(); if (Yii::$app->user->identity->phonestatus == 'verified' or $user_id['phonestatus'] == 'verified') { $model = new Found(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->file = UploadedFile::getInstance($model, 'file')) { $imageName = substr(md5(time()), 0, 5) . substr(time(), 0, 3); $model->file->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imageName . '.' . $model->file->extension); $model->image = 'uploads/' . $imageName . '.' . $model->file->extension; /*****imagine */ $imagine = new \Imagine\Imagick\Imagine(); //$imagine = new \Imagine\Gd\Imagine(); $watermark = $imagine->open('uploads/done.png'); $image = $imagine->open(Yii::getAlias('@frontend/web/') . $model->image); $size = $image->getSize(); $wSize = $watermark->getSize(); $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight()); $image->paste($watermark, $bottomRight); $image->save(Yii::getAlias('@frontend/web/') . $model->image); /* end */ } if ($model->file2 = UploadedFile::getInstance($model, 'file2')) { $imageName = substr(md5(time()), 0, 5) . substr(time(), 0, 3); $model->file2->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imageName . '2.' . $model->file2->extension); $model->image2 = 'uploads/' . $imageName . '2.' . $model->file2->extension; /*****imagine */ $imagine = new \Imagine\Imagick\Imagine(); //$imagine = new \Imagine\Gd\Imagine(); $watermark = $imagine->open('uploads/done.png'); $image = $imagine->open(Yii::getAlias('@frontend/web/') . $model->image2); $size = $image->getSize(); $wSize = $watermark->getSize(); $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight()); $image->paste($watermark, $bottomRight); $image->save(Yii::getAlias('@frontend/web/') . $model->image2); /* end */ } if ($model->file3 = UploadedFile::getInstance($model, 'file3')) { $imageName = substr(md5(time()), 0, 5) . substr(time(), 0, 3); $model->file3->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imageName . '3.' . $model->file3->extension); $model->image3 = 'uploads/' . $imageName . '3.' . $model->file3->extension; /*****imagine */ $imagine = new \Imagine\Imagick\Imagine(); //$imagine = new \Imagine\Gd\Imagine(); $watermark = $imagine->open('uploads/done.png'); $image = $imagine->open(Yii::getAlias('@frontend/web/') . $model->image3); $size = $image->getSize(); $wSize = $watermark->getSize(); $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight()); $image->paste($watermark, $bottomRight); $image->save(Yii::getAlias('@frontend/web/') . $model->image3); /* end */ } if ($model->file4 = UploadedFile::getInstance($model, 'file4')) { $imageName = substr(md5(time()), 0, 5) . substr(time(), 0, 3); $model->file4->saveAs(Yii::getAlias('@frontend/web/uploads/') . $imageName . '4.' . $model->file4->extension); $model->image4 = 'uploads/' . $imageName . '4.' . $model->file4->extension; /*****imagine */ $imagine = new \Imagine\Imagick\Imagine(); //$imagine = new \Imagine\Gd\Imagine(); $watermark = $imagine->open('uploads/done.png'); $image = $imagine->open(Yii::getAlias('@frontend/web/') . $model->image4); $size = $image->getSize(); $wSize = $watermark->getSize(); $bottomRight = new \Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight()); $image->paste($watermark, $bottomRight); $image->save(Yii::getAlias('@frontend/web/') . $model->image4); /* end */ } $model->status_m = 'inactive'; $model->status_f = 'notfound'; if ($user_id) { $model->user_id = $user_id['id']; } else { $model->user_id = Yii::$app->user->identity->id; } $user_phone = User::find()->where(['id' => $model->user_id])->one(); $model->user_phone = $user_phone['phone']; $model->save(); $email = \Yii::$app->mailer->compose()->setTo('*****@*****.**')->setFrom([\Yii::$app->params['adminEmail'] => 'e-Tap.az'])->setSubject('New Found' . $model->id)->setTextBody('Model id is: ' . $model->id)->send(); //FlashMessages \Yii::$app->getSession()->setFlash('moderate', '<div id="moderate_msg"><p>Elan qəbul olundu. Administrasiya tərəfindən təsdiqlənəndən sonra, sayta yerləşdiriləcək!</p></div>'); return $this->redirect(['elan/found']); } else { return $this->render('found', ['model' => $model]); } } } else { return $this->redirect(['site/login']); } }
/** * */ function processThumb($request_data) { if (!preg_match('~^/content/thumbs/(?<size>\\d*[x-]\\d*)/(?<crop>\\d+x\\d+\\-\\d+x\\d+|nocrop)/(?<checksum>[\\da-z]{6})/(?<file>.+)~', $request_data[0], $matches)) { return false; } if (!preg_match('~(?<width>\\d*)(?<sign>[x-])(?<height>\\d*)~', $matches['size'], $size_data)) { return false; } if (getCheckSum(array($matches['size'], $matches['crop'], $matches['file'])) !== $matches['checksum']) { return false; } if (!file_exists($original_filename = STATIC_ORIGINAL_FILES_DIR . '/' . $matches['file'])) { return false; } $thumb_name = STATIC_DIR . $request_data[0]; // load autoloader include VENDOR_DIR . '/autoload.php'; // add library to include path set_include_path(get_include_path() . PATH_SEPARATOR . VENDOR_DIR); // imagine $imagine = new \Imagine\Imagick\Imagine(); $image = $imagine->open($original_filename); // get crop data if ($matches['crop'] !== 'nocrop') { if (!preg_match('~(\\d+)x(\\d+)\\-(\\d+)x(\\d+)~', $matches['crop'], $crop_data)) { return false; } $crop_point = new Imagine\Image\Point($crop_data[1], $crop_data[2]); $crop_box = new Imagine\Image\Box($crop_data[3] - $crop_data[1], $crop_data[4] - $crop_data[2]); $image->crop($crop_point, $crop_box); } if (!file_exists(dirname($thumb_name)) && !mkdir(dirname($thumb_name), 0755, true)) { return false; } // get resize data $width = $size_data['width']; $height = $size_data['height']; if ($width && $height) { $size = new Imagine\Image\Box($width, $height); } else { if ($width) { $size = $image->getSize()->widen($width); } else { if ($height) { $size = $image->getSize()->heighten($height); } } } if (!empty($size)) { if (!empty($size_data['sign']) && $size_data['sign'] === '-') { $image = $image->thumbnail($size, \Imagine\Image\ImageInterface::THUMBNAIL_INSET); $w_diff = $size->getWidth() - $image->getSize()->getWidth(); $h_diff = $size->getHeight() - $image->getSize()->getHeight(); $bg = $imagine->create($size); $image = $bg->paste($image, new Imagine\Image\Point($w_diff / 2, $h_diff / 2)); } else { $image = $image->thumbnail($size, \Imagine\Image\ImageInterface::THUMBNAIL_OUTBOUND); } } $options = array('quality' => 85); if (!$image->save($thumb_name, $options)) { return false; } if (!($image_data = getimagesize($thumb_name))) { return false; } // optimize if ($image_data['mime'] === 'image/jpeg') { exec("jpegtran -copy none -optimize" . (filesize($thumb_name) < 10240 ? '' : ' -progressive') . " -outfile {$thumb_name} {$thumb_name}"); } if ($image_data['mime'] === 'image/png') { exec("optipng -o5 -quiet -preserve {$thumb_name}"); } header('X-Accel-Redirect: ' . $_SERVER['REQUEST_URI']); header('Content-Type: ' . $image_data['mime']); }
/** * * 创建新文件 * @param FileDirectory $basedir * @param Uploader $uploader */ public function makeFile(Uploader $uploader) { $filename = $uploader->getTitle(); if ($file_name = $this->getFilename($filename)) { $filepath = $this->path . '/' . $file_name; preg_match("/\\.([a-zA-Z0-9]{2,4})\$/", $file_name, $match); $ext = $match[1] ? strtolower($match[1]) : ''; $fileModel = new FileEntry($this->uid); if ($fileModel->findOne($filepath)) { $filepath = $fileModel->getRecoverPath(); //获取新文件路径名 } //视频截图 $thumbID = intval($uploader->thumb_id); if (!$thumbID) { $thumbInstance = $uploader->getThumbInstance(); if ($thumbInstance) { //更正截图的方向 $fileinfo = $uploader->getInfo(); if ($fileinfo['orientation']) { if ($fileinfo['orientation'] < 0) { $angle = intval(360 + $fileinfo['orientation']); } else { $angle = intval($fileinfo['orientation']); } $imagine = new \Imagine\Imagick\Imagine(); $image = $imagine->open($thumbInstance->tmpfile); $image->rotate($angle)->save($thumbInstance->tmpfile); } $photoModel = new Photo(); if ($photoModel->create($thumbInstance, array('ctrl_type' => 2))) { $thumbID = $photoModel->get_pid(); } } } $meta = array('oid' => intval($uploader->oid), 'uid' => $this->uid, 'source' => $uploader->tmpfile, 'size' => $uploader->getLength(), 'mime' => $uploader->getMIME(), 'md5' => $uploader->getMD5(), 'ext' => $ext, 'cid' => $uploader->cid ? $uploader->cid : 0, 'ctrl_type' => $uploader->ctrl_type ? $uploader->ctrl_type : 0, 'thumb_id' => $thumbID, 'meta' => $uploader->getInfo()); if ($fileModel->create($filepath, $this->get_fid(), $meta)) { $this->updateStat($fileModel->size, 1); return $fileModel; } } return FALSE; }
public function createThumb($targetpath, $photoname) { //echo Yii::getPathOfAlias('application.vendors.Imagine'); //require_once (Yii::app()->basepath.'/extensions/imagine/imagine-v0.3.0.phar'); Yii::setPathOfAlias('Imagine', Yii::getPathOfAlias('application.vendors.Imagine')); $imagine = new Imagine\Imagick\Imagine(); $size = new Imagine\Image\Box(50, 50); //$image = $imagine->open($targetpath); $mode = Imagine\Image\ImageInterface::THUMBNAIL_INSET; //echo $mode; //use Imagine\Image\Box; //use Imagine\Image\Point; //$image->resize(new Box(15, 25)) //->save(Yii::app()->basepath.DIRECTORY_SEPARATOR."portfoliophotos/thumb_".Yii::app()->user->id."_".$photoname); $image = $imagine->open($targetpath); $thumbnail = $image->thumbnail($size, $mode); $thumbnail->save(Yii::app()->basepath . DIRECTORY_SEPARATOR . "profilephotos" . DIRECTORY_SEPARATOR . "thumb_" . Yii::app()->user->id . "_" . $photoname); return; }