Изменение размера изображения без искажения изображения в коде
Я хочу изменить размер изображения без искажения изображения. Например, если я установил высоту изображения равной 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();