$errors[$type]['h'] = '>' . $prev_h;
        }
    }
    if (count($errors) == 0) {
        $prev_w = intval($pderivative['w']);
        $prev_h = intval($pderivative['h']);
    }
    $v = intval($pderivative['sharpen']);
    if ($v < 0 || $v > 100) {
        $errors[$type]['sharpen'] = '[0..100]';
    }
}
// step 3 - save data
if (count($errors) == 0) {
    $quality_changed = ImageStdParams::$quality != intval($_POST['resize_quality']);
    ImageStdParams::$quality = intval($_POST['resize_quality']);
    $enabled = ImageStdParams::get_defined_type_map();
    $disabled = @unserialize(@$conf['disabled_derivatives']);
    if ($disabled === false) {
        $disabled = array();
    }
    $changed_types = array();
    foreach (ImageStdParams::get_all_types() as $type) {
        $pderivative = $pderivatives[$type];
        if ($pderivative['enabled']) {
            $new_params = new DerivativeParams(new SizingParams(array(intval($pderivative['w']), intval($pderivative['h'])), round($pderivative['crop'] / 100, 2), array(intval($pderivative['minw']), intval($pderivative['minh']))));
            $new_params->sharpen = intval($pderivative['sharpen']);
            ImageStdParams::apply_global($new_params);
            if (isset($enabled[$type])) {
                $old_params = $enabled[$type];
                $same = true;
 /**
  * Loads derivative configuration from database or initializes it.
  */
 static function load_from_db()
 {
     global $conf;
     $arr = @unserialize($conf['derivatives']);
     if (false !== $arr) {
         self::$type_map = $arr['d'];
         self::$watermark = @$arr['w'];
         if (!self::$watermark) {
             self::$watermark = new WatermarkParams();
         }
         self::$custom = @$arr['c'];
         if (!self::$custom) {
             self::$custom = array();
         }
         if (isset($arr['q'])) {
             self::$quality = $arr['q'];
         }
     } else {
         self::$watermark = new WatermarkParams();
         self::$type_map = self::get_default_sizes();
         self::save();
     }
     self::build_maps();
 }