예제 #1
0
 public static function setDefault($params = null)
 {
     self::$defaults = array('type' => null, 'width' => null, 'height' => null, 'quality' => 90, 'function' => null, 'function_mode' => null, 'transparency' => true, 'background' => array('r' => 255, 'g' => 255, 'b' => 255));
     if ($params instanceof JRegistry) {
         $opts = array();
         // output type ?
         $imgcfg_type = $params->get('imgcfg_type', 0);
         if (in_array($imgcfg_type, array(IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_GIF))) {
             $opts['type'] = $imgcfg_type;
         }
         // function ?
         $imgcfg_fn = $params->get('imgcfg_function', 'none_resize');
         $imgcfg_fn = explode('_', $imgcfg_fn);
         if (in_array($imgcfg_fn[0], self::$functions)) {
             $opts['function'] = $imgcfg_fn[0];
             if ($imgcfg_fn[0] == 'resize') {
                 if (isset($imgcfg_fn[1]) && in_array($imgcfg_fn[1], self::$modes)) {
                     $opts['function_mode'] = $imgcfg_fn[1];
                 } else {
                     $opts['function_mode'] = self::$modes[2];
                 }
             }
         }
         // background
         $imgcfg_background = $params->get('imgcfg_background', null);
         if (!is_null($imgcfg_background)) {
             $opts['background'] = $imgcfg_background;
         }
         // quality
         $imgcfg_quality = $params->get('imgcfg_quality', null);
         if ($imgcfg_quality != null && intval($imgcfg_quality) > 0 && intval($imgcfg_quality) < 100) {
             $opts['quality'] = intval($imgcfg_quality);
         }
         // transparency
         $imgcfg_transparency = $params->get('imgcfg_transparency', 1);
         if ($imgcfg_transparency != null) {
             $opts['transparency'] = $imgcfg_transparency ? true : false;
         }
         // dimension ?
         $imgcfg_w = $params->get('imgcfg_width', 0);
         $imgcfg_h = $params->get('imgcfg_height', 0);
         if (intval($imgcfg_w) > 0) {
             $opts['width'] = $imgcfg_w;
         }
         if (intval($imgcfg_h) > 0) {
             $opts['height'] = $imgcfg_h;
         }
         self::$cache = $params->get('imgcfg_cache');
         self::$cache_url = $params->get('imgcfg_cache_url');
         // $this->initCache($cache_params);
     }
     self::$defaults = array_merge(self::$defaults, $opts);
 }