我为个人资料图片裁剪创建了一个脚本。我有一个可拖动的框来裁剪图像。代码工作正常,但我有一个小问题,为什么裁剪的图像没有在精确的位置(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.';
}
}
这是我的裁剪框
保存图像看起来像这样
我不知道为什么图像被裁剪成黑色区域。
由于