Обрезка изображения CodeIgniter - изображение не зависит от параметров crop () - PullRequest
1 голос
/ 19 апреля 2011

У меня есть эта модель для обрезки изображения пользователя

function crop_avatar()
{
    $id = $this->tank_auth->get_user_id();

    //get current avatar
    $query = $this->db->get_where('user_profiles', array('id' => $id));
    foreach ($query->result() as $row) {
        $j[$row->avatar] = $row->avatar;
    }

    $config['image_library'] = 'gd';
    $config['source_image'] = '.' . substr("$row->avatar", 18);
    $config['x_axis'] = '10';
    $config['y_axis'] = '60';
    $this->load->library('image_lib');      
    $this->image_lib->initialize($config); 

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

//      print_r($config);


}

, которое генерирует этот массив (через print_r)

Array
(
    [image_library] => gd
    [source_image] => ./images/avatars/b0b623057.jpg
    [x_axis] => 10
    [y_axis] => 60
)

По какой-то неизвестной мне причине - обрезка не происходит,Исходное изображение проходит через эту модель и не изменяется.

У меня есть GD на моем сервере - есть идеи, что здесь может быть не так?

Спасибо за тонну.

1 Ответ

7 голосов
/ 20 апреля 2011

Вам нужно указать ширину и высоту, на которую вы хотите обрезать изображение.

Значения конфигурации x_axis и y_axis - это точка в вашем существующем образе, с которой должна начинаться обрезка.

Другими словами, вам нужно 4 измерения для обрезки изображения: где начать вертикально (y_axis), где начать горизонтально (x_axis), где закончить вертикально (height) и где конец горизонтально (width)

Если одно из размеров вашего обрезанного изображения совпадает с размером исходного изображения, не забудьте установить maintain_ratio на false

...