public function resize($max_w, $max_h, $crop = false)
{
if ($this->size['width'] == $max_w && $this->size['height'] == $max_h) {
return true;
}
$dims = image_resize_dimensions($this->size['width'], $this->size['height'], $max_w, $max_h, $crop);
if (!$dims) {
return new WP_Error('error_getting_dimensions', __('Could not calculate resized image dimensions'));
}
list($dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) = $dims;
if ($crop) {
return $this->crop($src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h);
}
// Execute the resize
$thumb_result = $this->thumbnail_image($dst_w, $dst_h);
if (is_wp_error($thumb_result)) {
return $thumb_result;
}
return $this->update_size($dst_w, $dst_h);
}