public function cacheIt($width = null, $height = null, $mode = 'equal') { $w = isset($width) ? $width : $this->m_width; $h = isset($height) ? $height : $this->m_height; $p = new Picture($this->m_filename); if ($w == null && $h == null) { $mode = 'equal'; } $search_filename = Picture::getPictureFilename($this->m_filename, $w, $h, $mode); if (!file_exists($search_filename)) { switch ($mode) { case 'redim': $p->dimensionTo($w, $h); break; case 'crop': $p->cropTo($w, $h); break; } $p->toFile($search_filename); } if (file_exists($search_filename)) { list($width, $height, $type, $attr) = getimagesize($search_filename); return array('width' => $width, 'height' => $height); } }