Ejemplo n.º 1
0
 /**
  * Функция устанавливает параметры изображения (использует ф-ю getimagesize)
  * 
  * @param (string) $imgName - имя файла изображения
  * @param (string) $imgDir -  дарректория, в которой находится файл
  * 
  * @return bool
  */
 static function setParam($imgName, $imgDir)
 {
     $imgDir = filesys::setPath($imgDir);
     // проверяем существование файла
     if (@file_exists($imgDir . $imgName)) {
         // проверяем, является ли файл картинкой
         if ($params = @getimagesize($imgDir . $imgName)) {
             // проверяем тип изображения
             if (in_array($params[2], self::$imgTypes)) {
                 self::$arrImgSubj['name'] = strtolower($imgName);
                 self::$arrImgSubj['dir'] = strtolower($imgDir);
                 self::$arrImgSubj['full_path'] = self::$arrImgSubj['dir'] . self::$arrImgSubj['name'];
                 self::$arrImgSubj['width'] = $params[0];
                 self::$arrImgSubj['height'] = $params[1];
                 self::$arrImgSubj['type'] = $params[2];
                 self::$arrImgSubj['mime'] = strtolower($params['mime']);
                 // если в скприпте установлена настройка "Создавать водяной знак для всех изображений"
                 // т.е. для исходного и для всех его копий
                 // тогда создаем водяной знак.
                 // В этом случае исходное изображение уже будет содержать водяной знак
                 // и все копии этого изображения тоже будут с водяным знаком
                 if (CONF_FILES_IMG_CREATE_WATERMARK && CONF_FILES_IMG_CREATE_WATERMARK_ON === 'all') {
                     if (!img::createWatermark()) {
                         @unlink($imgDir . $imgName);
                         return false;
                     }
                 }
                 switch ($params[2]) {
                     case 1:
                         self::$arrImgSubj['ext'] = 'gif';
                         self::$arrImgSubj['resource'] = @ImageCreateFromGIF(self::$arrImgSubj['full_path']);
                         break;
                     case 2:
                         self::$arrImgSubj['ext'] = 'jpg';
                         self::$arrImgSubj['resource'] = @ImageCreateFromJPEG(self::$arrImgSubj['full_path']);
                         break;
                     case 3:
                         self::$arrImgSubj['ext'] = 'png';
                         self::$arrImgSubj['resource'] = @ImageCreateFromPNG(self::$arrImgSubj['full_path']);
                         break;
                 }
                 // если в скприпте установлена настройка "Создавать водяной знак только для исходного изображения"
                 // тогда создаем водяной знак.
                 // В этом случае водяной знак будет только на одной картинке, а его копии будут без водяного знака
                 if (CONF_FILES_IMG_CREATE_WATERMARK && CONF_FILES_IMG_CREATE_WATERMARK_ON === 'source') {
                     if (!img::createWatermark()) {
                         @unlink($imgDir . $imgName);
                         return false;
                     }
                 }
                 return true;
             } else {
                 self::setError(ERROR_FILE_FORMAT_ERROR);
                 @unlink($imgDir . $imgName);
                 return false;
             }
         } else {
             self::setError(ERROR_FILE_NOT_IMAGE);
             @unlink($imgDir . $imgName);
             return false;
         }
     } else {
         self::setError(ERROR_FILE_NOT_EXISTS);
         return false;
     }
     return false;
 }