CodeIgniter图像裁剪 - 不受crop()参数影响的图像

时间:2011-04-19 03:41:21

标签: php codeigniter image-processing gd crop

我有这个模型裁剪用户的图像

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 个答案:

答案 0 :(得分:7)

您需要定义希望裁剪图像的宽度和高度。

x_axisy_axis配置值是现有图片中应该开始裁剪的点。

换句话说,您需要进行4次测量来裁剪图像:从哪里垂直开始(y_axis),从哪里开始水平(x_axis),在哪里垂直结束({{1水平结束(height

如果裁剪图片的某个尺寸与原始图片的尺寸相同,请不要忘记将width设为maintain_ratio