public function actionGenerateImage() { $this->validateToken(); $device = N2Request::getVar('device'); $this->validateVariable($device == 'tablet' || $device == 'mobile', 'device'); $image = N2Request::getVar('image'); $this->validateVariable(!empty($image), 'image'); N2Loader::import('libraries.image.image'); $scale = array('tablet' => 0.5, 'mobile' => 0.3); $newImage = N2Image::scaleImage('image', $image, $scale[$device], true); $this->response->respond(array('image' => N2ImageHelper::fixed($newImage))); }
protected static function optimizeImage($image, $data, $slider) { $lazyLoad = $slider->features->lazyLoad; $imagePath = N2ImageHelper::fixed($image, true); if ($imagePath[0] == '/' && $imagePath[1] != '/' && $lazyLoad->layerImageSizeBase64 && $lazyLoad->layerImageSizeBase64Size && filesize($imagePath) < $lazyLoad->layerImageSizeBase64Size) { return array('src' => N2Image::base64($imagePath, $image)); } if (!$lazyLoad->layerImageOptimize || !$data->get('image-optimize', 1)) { return array('src' => N2ImageHelper::fixed($image)); } $tablet = N2Image::scaleImage('image', $image, $lazyLoad->layerImageTablet); $mobile = N2Image::scaleImage('image', $image, $lazyLoad->layerImageMobile); if ($image == $tablet && $image == $mobile) { return array('src' => N2ImageHelper::fixed($image)); } return array('src' => N2Image::base64Transparent(), 'data-desktop' => N2ImageHelper::fixed($image), 'data-tablet' => N2ImageHelper::fixed($tablet), 'data-mobile' => N2ImageHelper::fixed($mobile), 'data-device' => '1'); }