如何使用CodeIgniter Image_lib压缩图像?

发布于 2025-02-14 02:17:36 字数 1336 浏览 6 评论 0原文

我正在尝试在我的Codeigniter PHP网站上压缩图像的大小,并在我的控制器中编写以下代码:

$this->load->library('image_lib');
$this->load->library('upload');
$image = array();
$ImageCount = count($_FILES['pimage']['name']);
for($i = 0; $i < $ImageCount; $i++){
    $_FILES['file']['name']       = $_FILES['pimage']['name'][$i];
    $_FILES['file']['type']       = $_FILES['pimage']['type'][$i];
    $_FILES['file']['tmp_name']   = $_FILES['pimage']['tmp_name'][$i];
    $_FILES['file']['error']      = $_FILES['pimage']['error'][$i];
    $_FILES['file']['size']       = $_FILES['pimage']['size'][$i];
    
    // File upload configuration
    $uploadPath = './uploads/products/';
    $config['image_library'] = 'gd2';
    
    $config['upload_path'] = $uploadPath;
    $config['allowed_types'] = 'jpg|jpeg|png|gif';
    $config['quality'] = '60%';
    
    // Load and initialize upload library
    $this->load->library('upload', $config);
    $this->upload->initialize($config);
    
    // Upload file to server
    if($this->upload->do_upload('file')){
        // Uploaded file data
        $imageData = $this->upload->data();
        // $uploadImgData[$i]['image_name'] = $imageData['file_name'];
        $uploadImgData[] = $imageData['file_name'];
    }
}

但是,在上传后,图像仍然以相同的大小保存,任何人可以告诉我这里有什么问题吗?

I am trying to compress size of the image in my codeigniter php website and wrote the following code in my controller:

$this->load->library('image_lib');
$this->load->library('upload');
$image = array();
$ImageCount = count($_FILES['pimage']['name']);
for($i = 0; $i < $ImageCount; $i++){
    $_FILES['file']['name']       = $_FILES['pimage']['name'][$i];
    $_FILES['file']['type']       = $_FILES['pimage']['type'][$i];
    $_FILES['file']['tmp_name']   = $_FILES['pimage']['tmp_name'][$i];
    $_FILES['file']['error']      = $_FILES['pimage']['error'][$i];
    $_FILES['file']['size']       = $_FILES['pimage']['size'][$i];
    
    // File upload configuration
    $uploadPath = './uploads/products/';
    $config['image_library'] = 'gd2';
    
    $config['upload_path'] = $uploadPath;
    $config['allowed_types'] = 'jpg|jpeg|png|gif';
    $config['quality'] = '60%';
    
    // Load and initialize upload library
    $this->load->library('upload', $config);
    $this->upload->initialize($config);
    
    // Upload file to server
    if($this->upload->do_upload('file')){
        // Uploaded file data
        $imageData = $this->upload->data();
        // $uploadImgData[$i]['image_name'] = $imageData['file_name'];
        $uploadImgData[] = $imageData['file_name'];
    }
}

but after upload the image is still saved in the same size, can anyone please tell me what is wrong in here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眉目亦如画i 2025-02-21 02:17:37

您需要将配置设置与图书馆操作(例如(R),裁剪(C),旋转(X)或Watermark(W)等图书馆操作配对。

方法

参见

处理
​%1-100%设置图像的质量。质量越高,文件大小越大。r,c,x,w

目前,您只是设置了一堆配置数据并在没有处理方法的情况下上传图像,因此没有任何更改。

You need to pair the config setting with a library action like resize (R), cropping (C), rotation (X) or watermark (W).

see Processing Methods

and Preferences:

PreferenceDefault ValueOptionsDescriptionAvailability
quality90%1 - 100%Sets the quality of the image. The higher the quality the larger the file size.R, C, X, W

At the moment you are just setting a bunch of config data and upload the image without a processing method, hence nothing is changed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文