Codeigniter - обрезанное изображение становится черным - PullRequest
0 голосов
/ 24 января 2011

Когда я обрезаю изображение, оно становится абсолютно черным ??Зачем??

$config['upload_path'] = $_SERVER['DOCUMENT_ROOT'].'/website/uploads/original/'; $config['allowed_types'] = 'gif|jpg|png|bmp|jpeg';

    $this->load->library('upload'); $this->upload->initialize($config);   


    if(!$this->upload->do_upload()) {    $error = array('error' => $this->upload->display_errors());    $this->load->view('submit', $error); } else {    $data['upload_data'] = array('upload_data' => $this->upload->data());    $file_name
    = $this->upload->file_name;

       list($image_width, $image_height) = getimagesize($_SERVER['DOCUMENT_ROOT'].'/website/uploads/original/'.$file_name);

       // create small size    $config['image_library'] = 'GD2';    $config['source_image'] = $_SERVER['DOCUMENT_ROOT'].'/website/uploads/original/'.$file_name; $config['new_image'] = $_SERVER['DOCUMENT_ROOT'].'/website/uploads/small/'.$file_name; $config['maintain_ratio'] = TRUE;    $config['width'] = 181;    $config['height'] = 115;    $config['master_dim'] = 'width';

       $this->load->library('image_lib');  $this->image_lib->initialize($config);

       if($image_width >= $config['width'] AND $image_height >= $config['height'])    {
          if (!$this->image_lib->resize())
          {
             echo $this->image_lib->display_errors();
          } else {
             if(file_exists($_SERVER['DOCUMENT_ROOT'].'/website/uploads/small/'.$file_name))

             {
                list($image_width, $image_height) = getimagesize($_SERVER['DOCUMENT_ROOT'].'/website/uploads/small/'.$file_name);
                if($image_height > '115')
                { 
               $config['source_image'] = $_SERVER['DOCUMENT_ROOT'].'/website/uploads/small/'.$file_name;
               $y_axis = $image_height - 115;
               $config['y_axis'] = $y_axis;
               $config['x_axis'] = 181;
               $this->image_lib->initialize($config);
               if (!$this->image_lib->crop())
                   {
                      echo $this->image_lib->display_errors();
                   } else {
                      echo "cropped";    
               }
             }
          }    } }

1 Ответ

1 голос
/ 24 января 2011

Я считаю, что CI использует стандартный модуль PHP GD.Ранее я обнаружил, что если изображение, которое вы используете, слегка повреждено, оно все равно будет отображаться нормально, но после изменения размера вы просто получите черный ящик.

Пробовали ли вы использовать какие-либо другие изображения?Изображения разных типов (png / jpg / etc)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...