예제 #1
0
 private function handleImageEffects(&$imgHandle)
 {
     if (empty($this->effect)) {
         return false;
     }
     switch ($this->effect) {
         case self::EFFECT_BW:
             if (defined("IMG_FILTER_GRAYSCALE")) {
                 imagefilter($imgHandle, IMG_FILTER_GRAYSCALE);
             }
             break;
         case self::EFFECT_BRIGHTNESS:
             if (defined("IMG_FILTER_BRIGHTNESS")) {
                 if (!is_numeric($this->effect_arg1)) {
                     $this->effect_arg1 = 50;
                 }
                 //set default value
                 UniteFunctionsHCar::validateNumeric($this->effect_arg1, "'ea1' argument");
                 imagefilter($imgHandle, IMG_FILTER_BRIGHTNESS, $this->effect_arg1);
             }
             break;
         case self::EFFECT_CONTRAST:
             if (defined("IMG_FILTER_CONTRAST")) {
                 if (!is_numeric($this->effect_arg1)) {
                     $this->effect_arg1 = -5;
                 }
                 //set default value
                 imagefilter($imgHandle, IMG_FILTER_CONTRAST, $this->effect_arg1);
             }
             break;
         case self::EFFECT_EDGE:
             if (defined("IMG_FILTER_EDGEDETECT")) {
                 imagefilter($imgHandle, IMG_FILTER_EDGEDETECT);
             }
             break;
         case self::EFFECT_EMBOSS:
             if (defined("IMG_FILTER_EMBOSS")) {
                 imagefilter($imgHandle, IMG_FILTER_EMBOSS);
             }
             break;
         case self::EFFECT_BLUR:
             if (defined("IMG_FILTER_GAUSSIAN_BLUR")) {
                 imagefilter($imgHandle, IMG_FILTER_GAUSSIAN_BLUR);
             }
             break;
         case self::EFFECT_MEAN:
             if (defined("IMG_FILTER_MEAN_REMOVAL")) {
                 imagefilter($imgHandle, IMG_FILTER_MEAN_REMOVAL);
             }
             break;
         case self::EFFECT_SMOOTH:
             if (defined("IMG_FILTER_SMOOTH")) {
                 if (!is_numeric($this->effect_arg1)) {
                     $this->effect_arg1 = 15;
                 }
                 //set default value
                 imagefilter($imgHandle, IMG_FILTER_SMOOTH, $this->effect_arg1);
             }
             break;
         default:
             $this->throwError("Effect not supported: <b>{$this->effect}</b>");
             break;
     }
 }