original = $path; $this->format = $f3->get('cachedImageFormat') ? : 'jpeg'; $this->quality = $f3->get('cachedImageQuality') ? : false; if ($this->quality === false) { switch($this->format) { case 'png': $this->quality = 6; break; case 'jpg': case 'jpeg': $this->quality = 75; break; } } } function get_src($inwidth = 500) { $f3 = \Base::instance(); if($this->is_image($this->original) && TRUE) { $info = pathinfo($this->original); $fn = basename($this->original,'.'.$info['extension']); $width = $inwidth ? $inwidth : $this->default_width; $name = md5($this->original.$width); $name = sprintf("%s_%s.%s",$fn,$name,$this->format); $out = $this->cache_dir.$name; //if(!file_exists($this->original)) { $this->original='rsc/img/default.png'; } if(!file_exists($out)) { $img1 = new \Image($this->original); $img1->resize($width); $f3->write($out,$img1->dump($this->format,$this->quality)); unset($img1); } } else { $out = $this->original; } return "/".$out; } function is_image($path) { // this protects from accidently calling this class on a wrong file // it doesn't ensure that the file actually contains valid image data $ex = explode('.',$path); $ext = array_pop($ex); return in_array(strtolower($ext),array( 'jpg', 'jpeg', 'png' )); } }