答案 0 :(得分:13)
您需要设置x轴(左),宽度(右),y轴(顶部)和高度(底部)。您需要确保设置图像的宽度和高度。
list($width, $height, $type, $attr) = getimagesize($img);
$CI->load->library('image_lib');
$config['image_library'] = 'gd2';
$config['source_image'] = $img;
$config['x_axis'] = '10';
$config['y_axis'] = '10';
$config['maintain_ratio'] = FALSE;
$config['width'] = $width-10;
$config['height'] = $height-10;
上面的代码会将图像裁剪为左,右,上,下10像素。您可以随意将“10”的值更改为您喜欢的值;)
答案 1 :(得分:4)
答案 2 :(得分:1)
我没有使用gd2库获得任何结果。 它总是调整图像大小,但更新的作物。
所以这里是imagemagick的解决方案,效果很好。
public function resize_prep($path, $file){
$config['image_library'] = 'imagemagick';
$config['library_path'] = '/usr/bin';
$config['source_image'] = $path;
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = FALSE;
$config['x_axis'] = 300;
$config['y_axis'] = 300;
//$config['width'] = 650;
//$config['height'] = 353;
$config['new_image'] = './uploads/'.$file;
$this->load->library('image_lib', $config);
//$this->image_lib->crop();
$this->image_lib->initialize($config);
if (!$this->image_lib->crop()){
echo $this->image_lib->display_errors();
}
}
答案 3 :(得分:0)
今天,我将在使用带有ajax的jQuery裁剪器上传之前显示裁剪图像。在上传到Codeigniter中的数据库之前,我将显示裁剪和调整大小的图像。
在本教程中,我们将学习PHP中的裁剪图像。本教程使用jQuery在Codeigniter 4项目中使用Ajax上传图像。图像显示裁剪的预览并调整图像大小,然后再使用Ajax保存到数据库中。并且无需刷新和重新加载您的CodeIgniter项目的网页。我们将在Codeigniter中学习裁剪图像。
创建控制器
现在,转到app / Controllers并创建一个控制器名称CropImageUpload.php。在此控制器中,我们将创建一些方法/函数:[Crop and Save] Image using jQuery Coppie in Codeigniter- Step by Step
<?php namespace App\Controllers;
use CodeIgniter\Controller;
class CropImageUpload extends Controller
{
public function index()
{
return view('crop-image-upload-form');
}
public function store()
{
helper(['form', 'url']);
$db = \Config\Database::connect();
$builder = $db->table('crop_images');
$data = $_POST["image"];
$image_array_1 = explode(";", $data);
$image_array_2 = explode(",", $image_array_1[1]);
$data = base64_decode($image_array_2[1]);
$imageName = time() . '.png';
file_put_contents($imageName, $data);
$image_file = addslashes(file_get_contents($imageName));
$save = $builder->insert(['title' => $image_file]);
$response = [
'success' => true,
'data' => $save,
'msg' => "Crop Image has been uploaded successfully in codeigniter"
];
return $this->response->setJSON($response);
}
}