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; }
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); } }