public function wp_generate_attachment_metadata($metadata, $attachment_id)
 {
     $attachment = get_attached_file($attachment_id);
     if (!preg_match('!^image/!', get_post_mime_type($attachment_id)) || !file_is_displayable_image($attachment)) {
         return $metadata;
     }
     $image_sizes = Helper::get_image_sizes();
     foreach ($image_sizes as $size_name => $size_attributes) {
         if (!empty($metadata['sizes'][$size_name])) {
             continue;
         }
         $image = wp_get_image_editor($attachment);
         if (is_wp_error($image)) {
             continue;
         }
         $resized = $image->resize($size_attributes['width'], $size_attributes['height'], $size_attributes['crop']);
         $image_size = $image->get_size();
         if (!is_wp_error($resized) && !empty($image_size)) {
             $filename = wp_basename($image->generate_filename());
             $extension = pathinfo($filename, PATHINFO_EXTENSION);
             $mime_type = $this->get_mime_type($extension);
             $metadata['sizes'][$size_name] = array('file' => $filename, 'width' => $image_size['width'], 'height' => $image_size['height'], 'mime-type' => $mime_type);
         }
     }
     return $metadata;
 }
 protected function create_image()
 {
     $attachment_id = attachment_url_to_postid($this->main_image_url);
     if (!$attachment_id) {
         die(__('Unknown attachment.', 'crb'));
     }
     $image_sizes = Helper::get_image_sizes();
     $image_size_name = $this->find_attachment_image_size($attachment_id, $this->requested_image_width, $this->requested_image_height);
     if (empty($image_size_name) || empty($image_sizes[$image_size_name])) {
         die(__('Unknown image size.', 'crb'));
     }
     $image_details = Helper::get_image_src($attachment_id, $image_size_name);
     $this->new_image_url = $image_details['src'];
     $this->new_image_path = str_replace($this->upload_dir['baseurl'], $this->upload_dir['basedir'], $this->new_image_url);
     return $this;
 }
 function crb_get_image_size_text($size_name = '')
 {
     return Helper::get_image_size_text($size_name);
 }