图像未在CodeIgniter中的确切位置进行裁剪

时间:2015-06-25 05:48:09

标签: php image codeigniter

我为个人资料图片裁剪创建了一个脚本。我有一个可拖动的框来裁剪图像。代码工作正常,但我有一个小问题,为什么裁剪的图像没有在精确的位置(x轴和y轴)裁剪。我正在使用CodeIgniter框架。

我的裁剪功能:

public function uploadLogo() {
    if($_SERVER['REQUEST_METHOD'] === 'POST') {
        $lc = $this->session->userdata('logged_company');
        $id = $lc['id'];

        $config['upload_path']      = 'assets/uploads/company/logo/'.md5($id);
        $config['allowed_types']    = 'gif|jpg|jpeg|png';
        $config['file_name']        = 'profileImg';
        $config['overwrite']        = TRUE;
        $config['max_size']         = '0';
        $config['max_width']        = '0';
        $config['max_height']       = '0';

        $this->upload->initialize($config);
        $this->load->library('upload', $config);   

        if(!is_dir($config['upload_path'])){
            mkdir($config['upload_path'], 0755, TRUE);
        }
        echo json_encode($config);
        if (!$this->upload->do_upload('profileImg')){ 
            echo json_encode($this->upload->display_errors());
        } else {

            $upload_data = $this->upload->data();
            $image_config["image_library"] = "gd2";
            $image_config["source_image"] = $upload_data["full_path"];
            $image_config['create_thumb'] = FALSE;
            $image_config['maintain_ratio'] = TRUE;
            $image_config['new_image'] = $upload_data["file_path"].'logo.png';
            $image_config['quality'] = "100%";
            $image_config['width'] = 200;
            $image_config['height'] = 170;
            $dim = (intval($upload_data["image_width"]) / intval($upload_data["image_height"])) - ($image_config['width'] / $image_config['height']);
            $image_config['master_dim'] = ($dim > 0)? "height" : "width";

            $this->upload->initialize($image_config); 
            $this->load->library('image_lib');
            $this->image_lib->initialize($image_config);

            if(!$this->image_lib->resize()){ //Resize image
                echo json_encode($this->upload->display_errors());
            } else{

                $image_config['image_library'] = 'gd2';
                $image_config['source_image'] = $upload_data["file_path"].'logo.png';
                $image_config['new_image'] = $upload_data["file_path"].'logo.png';
                $image_config['quality'] = "100%";
                $image_config['maintain_ratio'] = FALSE;
                $image_config['width'] = 200;
                $image_config['height'] = 170;
                $image_config['x_axis'] = $this->input->post('left')
                $image_config['y_axis'] = $this->input->post('top');

                $this->image_lib->clear();
                $this->image_lib->initialize($image_config); 

                if (!$this->image_lib->crop()){
                        echo json_encode($this->upload->display_errors());
                }else{
                    redirect("successpage");
                }
            }
        }
    } else {
        echo 'You are not authorized to access this page.';
    }
}  

这是我的裁剪框This is my crop box for image

裁剪后

保存图像看起来像这样

enter image description here

我不知道为什么图像被裁剪成黑色区域。

由于

0 个答案:

没有答案