Codeigniter не поддерживает соотношение сторон - PullRequest
6 голосов
/ 13 сентября 2010

Я ожидаю, что $config['maintain_ratio'] = TRUE; приведет к вычислению ширины, если я укажу только высоту.Я думаю, я должен предоставить какое-либо большое число для высоты, чтобы она работала?

    $config['image_library']    = 'gd2';
    $config['source_image']     = $image_filepath;
    $config['new_image']        = $thumbnail_filepath;
    $config['maintain_ratio']   = TRUE;
    $config['height']           = $this->thumbnail_height;

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

Ответы [ 3 ]

16 голосов
/ 13 сентября 2010

Правильно, вы ДОЛЖНЫ указать как высоту, так и ширину. Поскольку опция keep_ratio включена, изменение размера будет максимально приближено к целевому размеру при сохранении исходного соотношения сторон.

Однако , если вы хотите убедиться, что это всегда определенная высота, задайте для параметра конфигурации master_dim значение «высота», тогда вы можете установить ширину на что угодно, и она всегда будет сделать размер изображения на этой высоте, сохраняя соотношение сторон с шириной. Подобная идея работает для поддержания ширины.

8 голосов
/ 15 марта 2012

@ Митчелл МакКенна, Thanx. Это мне очень помогло.

В моем проекте исходное изображение могло иметь любой размер. и я хотел, чтобы его ширина 245 пикселей, с сохранением отношения, Так, Я просто так сделал ....

$config['width'] = '245';
$config['height'] = '1';
$config['maintain_ratio'] = TRUE;
$config['master_dim'] = 'width';

И это сработало. Thanx

0 голосов
/ 08 марта 2015

Установка другого измерения на 1 будет производить изменение размера на основе первого значения.Например, если вы хотите оставить width = 700px и рассчитать высоту на основе этого отношения;

$config['width'] = 700;
$config['height'] = 1; // force resizing based on width
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...