The Codeigniter image manipulation class rotates an image while resizing

I use the Codeigniter image manipulation library to resize the uploaded image to three sizes, small, normal, and large.

Recalibration works fine. However, if I resize the vertical image, the library rotates the image so that it is horizontal.

These are the configuration settings that I have:

     $this->resize_config['image_library'] = 'gd2';
     $this->resize_config['source_image'] = $this->file_data['full_path'];
     $this->resize_config['maintain_ratio'] = TRUE;

     // These change based on the type (small, normal, large)
     $this->resize_config['new_image'] = './uploads/large/'.$this->new_file_name.'.jpg';
     $this->resize_config['width'] = 432;
     $this->resize_config['height'] = 288;

I do not set the master_dim property, because by default it is set to auto, and that is what I want.

My assumption is that the library will take a vertical image, see that the height is greater than the width and accordingly translates the height / width configuration so that the image remains vertical.

(-) , , , .

, :

        log_message('debug', 'attempting '.$size.' photo resize');
        $this->CI->load->library('image_lib');
        $this->CI->image_lib->initialize($this->resize_config);
        if ($this->CI->image_lib->resize())
        {
              $return_value = TRUE;
              log_message('debug', $size.' photo resize successful');
        }
        else
        {
            $this->errors[] = $this->CI->image_lib->display_errors();
            log_message('debug', $size.' photo resize failed');
        }
        $this->CI->image_lib->clear();
        return $return_value;

, . image_height image_width , , .

, :

     $this->upload_config['allowed_types'] = 'jpg|jpeg';
     $this->upload_config['max_size']  = '2000';
     $this->upload_config['max_width']  = '0';
     $this->upload_config['max_height']  = '0';
     $this->upload_config['upload_path'] = './uploads/working/';


     $this->CI->load->library('upload', $this->upload_config);
     if ($this->CI->upload->do_upload($this->posted_file))
     {
         $this->file_data = $this->CI->upload->data();
         $return_value = TRUE;
         log_message('debug', 'upload successful');
     }

:

     $this->is_vertical = $this->file_data['image_height'] > $this->file_data['image_width'];
     log_message('debug', 'image height:'.$this->file_data['image_height']);
     log_message('debug', 'image width:'.$this->file_data['image_width']);
     if ($this->is_vertical)
     {
         $this->resize_config['master_dim'] = 'height';
     }
     else
     {
         $this->resize_config['master_dim'] = 'width';
     }
    log_message('debug', 'master_dim setting:'.$this->resize_config['master_dim']); 

:

DEBUG - 2010-03-16 18:35:06 → : 1536 DEBUG - 2010-03-16 18:35:06 → : 2048 DEBUG - 2010-03-16 18:35:06 → master_dim :

, :

: 2048 : 1536

- , ?

+3
2

. , . , .

, Codeigniter , .

, , , , .

, , , , , .

- , .

, musoNic80. , - .

0

, , , , master_dim. "" , . , , , . maintain_ratio. , "" , . , , ? "FALSE" .

+1

Source: https://habr.com/ru/post/1737083/


All Articles