slider = $slider; $this->playWhenVisible = intval($slider->params->get('playWhenVisible', 1)); $this->playWhenVisibleAt = max(0, min(100, intval($slider->params->get('playWhenVisibleAt', 50)))) / 100; $this->backgroundImageWidthNormal = intval($slider->params->get('optimize-slide-width-normal', 1920)); $this->quality = intval($slider->params->get('optimize-quality', 70)); $this->thumbnailWidth = $slider->params->get('optimizeThumbnailWidth', 100); $this->thumbnailHeight = $slider->params->get('optimizeThumbnailHeight', 60); $this->thumbnailQuality = $slider->params->get('optimize-thumbnail-quality', 70); } public function makeJavaScriptProperties(&$properties) { $properties['playWhenVisible'] = $this->playWhenVisible; $properties['playWhenVisibleAt'] = $this->playWhenVisibleAt; } public function optimizeBackground($image, $x = 50, $y = 50) { try { $imageSize = FastImageSize::getSize($image); if ($imageSize) { $optimizeScale = $this->slider->params->get('optimize-scale', 0); $targetWidth = $imageSize['width']; $targetHeight = $imageSize['height']; if ($optimizeScale && $targetWidth > $this->backgroundImageWidthNormal) { $targetHeight = ceil($this->backgroundImageWidthNormal / $targetWidth * $targetHeight); $targetWidth = $this->backgroundImageWidthNormal; } return ImageEdit::resizeImage('slider/cache', ResourceTranslator::toPath($image), $targetWidth, $targetHeight, false, 'normal', 'ffffff', true, $this->quality, true, $x, $y); } return $image; } catch (Exception $e) { return $image; } } public function optimizeThumbnail($image) { if ($this->slider->params->get('optimize-thumbnail-scale', 0)) { try { return ImageEdit::resizeImage('slider/cache', ResourceTranslator::toPath($image), $this->thumbnailWidth, $this->thumbnailHeight, false, 'normal', 'ffffff', true, $this->thumbnailQuality, true); } catch (Exception $e) { return ResourceTranslator::toUrl($image); } } return ResourceTranslator::toUrl($image); } public function adminOptimizeThumbnail($image) { if ($this->slider->params->get('optimize-thumbnail-scale', 0)) { try { return ImageEdit::resizeImage('slider/cache', ResourceTranslator::toPath($image), $this->thumbnailWidth, $this->thumbnailHeight, true, 'normal', 'ffffff', true, $this->thumbnailQuality, true); } catch (Exception $e) { return ResourceTranslator::toUrl($image); } } return ResourceTranslator::toUrl($image); } public function optimizeImageWebP($src, $options) { $options = array_merge(array( 'optimize' => false, 'quality' => 70, 'resize' => false, 'defaultWidth' => 1920, 'mediumWidth' => 1200, 'mediumHeight' => 0, 'smallWidth' => 500, 'smallHeight' => 0, 'focusX' => 50, 'focusY' => 50, 'compressOriginal' => false ), $options); } }