当前位置: 首页>>代码示例>>PHP>>正文


PHP HFile::addPostfix方法代码示例

本文整理汇总了PHP中HFile::addPostfix方法的典型用法代码示例。如果您正苦于以下问题:PHP HFile::addPostfix方法的具体用法?PHP HFile::addPostfix怎么用?PHP HFile::addPostfix使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HFile的用法示例。


在下文中一共展示了HFile::addPostfix方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getPreview

 /**
  * Обработка создания превью картинки, сохранение в той же директории, что и оригинал с
  * постфиксом $postfix и регистрации превью, если она до этого не существовала
  * @param integer $w Ширина превью, если ноль, то ширина растягивается пропорционально высоте.
  * @param integer $h Высота превью, если ноль, то высота растягивается пропорционально широте.
  * @param string cropType - если не пустое, то картинка не растягивается, а вырезается под нужный размер. В этом случае нулей в ширине и высоте быть не может.
  * Возможные варианты: top|left(обрезается по верху, а если она растянута по ширине - то по центру)|right
  * @param string $postfix Постфикс, добавляется к имени файла
  * @param integer $quality Качество, в процентах
  * @param $resize Нужно ли масштабировать
  * @return File Превью
  */
 public function getPreview($w, $h, $postfix = '_p', $cropType = null, $quality = 80, $resize = false)
 {
     //Если не изображение
     if (!$this->getIsImage()) {
         return null;
     }
     if (!is_numeric($quality)) {
         $quality = 80;
     }
     //if ($f->getStatusProcess() == 1) return null;
     $root = Yii::getPathOfAlias('webroot') . DIRECTORY_SEPARATOR;
     $fp = $this->file_path;
     $fotobig = $root . $fp;
     if (empty($fp) || !file_exists($fotobig)) {
         return null;
     }
     // если размеры меньше, то не увеличиваем
     $img = new ImageUtils();
     $a = $img->info($fotobig);
     if ($w > 0 && $a['width'] <= $w && empty($cropType)) {
         $w = 0;
     }
     if ($h > 0 && $a['height'] <= $h && empty($cropType)) {
         $h = 0;
     }
     $previewAfter = HFile::addPostfix($fotobig, $postfix);
     $need2register = !file_exists($previewAfter);
     if ($w == 0) {
         $w = null;
     }
     if ($h == 0) {
         $h = null;
     }
     $img = new ImageUtils();
     // нужно ли проверять размер превью
     $needResize = false;
     if (file_exists($previewAfter)) {
         if ($resize) {
             $prevInfo = $img->info($previewAfter);
             $rh = $h;
             $rw = $w;
             //Вписывает изображение в прямоугольник $w x $h
             if ($resize === 'auto') {
                 if ($w > 0 && $h > 0) {
                     $kw = $w / $a['width'];
                     $kh = $h / $a['height'];
                     $rh = round($kw * $a['height']);
                     $rw = round($kw * $a['width']);
                     if ($rh > $h) {
                         $rh = round($kh * $a['height']);
                         $rw = round($kh * $a['width']);
                         $w = null;
                     } else {
                         $h = null;
                     }
                 }
             }
             $needResize = $rw != null && $prevInfo['width'] != $rw || $rh != null && $prevInfo['height'] != $rh;
         }
     }
     // Создание превью
     if (!file_exists($previewAfter) || $needResize) {
         // 0-0
         if ($h == null && $w == null) {
             return $this;
         } else {
             //if (DA_CONTROL_PROCESS_FILE) $f->updateStatusProcess(1);
             if (!$img->open($fotobig)) {
                 return null;
             }
             // 1-1
             if (!empty($cropType)) {
                 $img->crop($w, $h, true, $cropType);
                 // 1-0
             } else {
                 if ($h == null) {
                     $k = $w / $img->width;
                     $h = round($img->height * $k);
                     $img->resize($w, $h);
                     // 0-1
                 } else {
                     if ($w == null) {
                         $k = $h / $img->height;
                         $w = round($img->width * $k);
                         $img->resize($w, $h);
                         // 1-1
                     } else {
                         $img->crop($w, $h, true, 'center');
//.........这里部分代码省略.........
开发者ID:kot-ezhva,项目名称:ygin,代码行数:101,代码来源:File.php


注:本文中的HFile::addPostfix方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。