Изменение размера изображения без искажения изображения в коде

Я хочу изменить размер изображения без искажения изображения. Например, если я установил высоту изображения равной 100, а ширину - 200. Размер изображения должен быть 100 высотой и шириной 200. Чтобы добиться этого, я хочу обрезать это изображение вместо того, чтобы искажать это.

Мои параметры конфигурации:-

            $config['create_thumb'] = TRUE;
            $config['maintain_ratio'] = FALSE;
            $config['master_dim'] = 'auto';
            $config['width'] = 100;
            $config['height']= 100;

            $this->image_lib->initialize($config);
            $this->image_lib->resize();

И возможно ли это без использования какой-либо другой библиотеки манипуляций с изображениями?

3 ответа

Решение

Я решил свою проблему. Я должен был изменить размер своего изображения и затем обрезать его. В любом случае, это немного долгий процесс, если у вас есть лучшее, чем это, пожалуйста, предложите.

Мой код:

            //Resize Image
            $config = array();
            $config['image_library'] = 'gd2';
            $config['source_image'] = './assets/original/'.$image_name;
            $config['new_image'] = './assets/banner/'.$image_name;
            $config['create_thumb'] = FALSE;
            $config['maintain_ratio'] = TRUE;
            $config['master_dim']= 'width';
            $config['quality']  = '100';
            $config['width'] = 1260;
            $config['height']= 645;
            $this->image_lib->initialize($config);
            $this->image_lib->resize();
            // Crop Image
            $config = array();
            $config['image_library'] = 'gd2';
            $config['source_image'] = './assets/banner/'.$image_name;
            $config['new_image'] = './assets/banner/'.$image_name;
            $config['create_thumb'] = FALSE;
            $config['maintain_ratio'] = FALSE;
            $config['quality']  = '100';
            $config['x_axis'] = 0;
            $config['y_axis'] = 0;
            $config['width'] = 1260;
            $config['height']= 645;
            $this->image_lib->initialize($config);
            $this->image_lib->crop();

Вы или изменяете размеры или обрезаете это, как кто-то сказал здесь

Если урожай

$config['image_library'] = 'imagemagick';
$config['library_path'] = '/usr/X11R6/bin/';
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['x_axis'] = '100';
$config['y_axis'] = '60';
$this->image_lib->initialize($config); 

if ( ! $this->image_lib->crop())
{
   echo $this->image_lib->display_errors();
}

Если изменить размер именно то, что у вас есть.

 $this->image_lib->resize();

я думаю, что это должно быть

 $this->image_lib->crop();
Другие вопросы по тегам