Esempio n. 1
0
 public function watermark($image = false, $parms = false)
 {
     if (!$image) {
         $image = CMS_Images::$default_watermark_image;
     }
     if (!$parms) {
         $parms = CMS_Images::$default_watermark_parms;
     }
     if (is_string($image)) {
         $image = preg_replace('{^/?}', '', $image);
         $watermark = new Imagick($image);
         list($w, $h) = CMS_Images::size($image);
     } elseif (is_object($image) && $image instanceof CMS_Image_Imagick) {
         $watermark =& $image->ih;
         $w = $image->width();
         $h = $image->height();
     }
     $_w = $this->width();
     $_h = $this->height();
     list($nl, $nt, $opacity) = $this->watermark_parms($parms, $_w, $_h, $w, $h);
     if ($opacity != 1) {
         $watermark->setImageOpacity($opacity);
     }
     $this->ih->compositeImage($watermark, Imagick::COMPOSITE_ATOP, $nl, $nt);
     return $this;
 }
Esempio n. 2
0
 public function resize_image($filename, $parms)
 {
     Core::load('CMS.Images');
     list($w, $h) = CMS_Images::size($filename);
     if (!$w || !$h) {
         return;
     }
     $nw = $w;
     $nh = $h;
     if (isset($parms['crop'])) {
         list($rw, $rh) = CMS_Images::string2sizes($parms['crop']);
         $rw = (int) $rw;
         $rh = (int) $rh;
         if ($rw != $w || $rh != $h || isset($parms['grayscale']) || isset($parms['watermark'])) {
             $img = CMS_Images::Image($filename);
             if ($rw != $w || $rh != $h) {
                 $img = $img->crop($rw, $rh);
             }
             $img = $this->wg($img, $parms);
             $img->save($filename);
         }
         return;
     }
     if (isset($parms['margins'])) {
         list($rw, $rh) = CMS_Images::string2sizes($parms['margins']);
         $rw = (int) $rw;
         $rh = (int) $rh;
         $color = '#FFFFFF';
         if (isset($parms['margins_color'])) {
             $color = $parms['margins_color'];
         }
         if ($rw != $w || $rh != $h || isset($parms['grayscale']) || isset($parms['watermark'])) {
             $img = CMS_Images::Image($filename);
             if ($rw != $w || $rh != $h) {
                 $img = $img->fit_with_margins($rw, $rh, $color);
             }
             $img = $this->wg($img, $parms);
             $img->save($filename);
         }
         return;
     }
     $fit = true;
     if (isset($parms['resize'])) {
         list($rw, $rh) = CMS_Images::string2sizes($parms['resize']);
         $rw = (int) $rw;
         $rh = (int) $rh;
         if ($rw > 0) {
             $nw = $rw;
         }
         if ($rh > 0) {
             $nh = $rh;
         }
         $fit = false;
     } else {
         if (isset($parms['fit'])) {
             list($rw, $rh) = CMS_Images::string2sizes($parms['fit']);
             $rw = (int) $rw;
             $rh = (int) $rh;
             if ($rw < $nw) {
                 $nw = $rw;
             }
             if ($rh < $nh) {
                 $nh = $rh;
             }
             $fit = true;
         }
     }
     if ($nw != $w || $nh != $h) {
         $img = CMS_Images::Image($filename)->resize($nw, $nh, $fit);
         $img = $this->wg($img, $parms);
         $img->save($filename);
         return;
     }
     if (isset($parms['grayscale']) || isset($parms['watermark'])) {
         $img = CMS_Images::Image($filename);
         $img = $this->wg($img, $parms);
         $img->save($filename);
     }
 }