简体   繁体   English

如何使用Codeigniter调整图像大小

[英]How to resize image using Codeigniter

I am trying to upload image and resizing image.I want both image original image as well as thumb image. 我正在尝试上传图像并调整图像大小。我想要图像原始图像以及拇指图像。

But the problem is image resizing code is not working. 但是问题是图像调整大小的代码无法正常工作。

Image uploading code is working fine its store the image in folder but the image resizing code is not working. 图像上传代码工作正常,将图像存储在文件夹中,但是图像大小调整代码不起作用。

How can i do this ? 我怎样才能做到这一点 ?

Here is my Code 这是我的代码

public function add_images(){

    $this->form_validation->set_rules('description','Description','required');
    $this->form_validation->set_rules('status','Status','required');

    if($this->form_validation->run() == TRUE) {
         // print_r($this->input->post());
        $config['upload_path'] = 'public/img/inner_images/';
        $config['allowed_types'] = 'gif|jpg|jpeg|png';   // upload only valid images            
        // update library setting of upload
        $this->load->library('upload', $config);
        //upload image 
        $this->upload->do_upload('image');
        $fInfo = $this->upload->data(); // get all info of uploaded file

        //for image resize
        $img_array = array();
        $img_array['image_library'] = 'gd2';
        $img_array['maintain_ratio'] = TRUE;
        $img_array['create_thumb'] = TRUE;
        //you need this setting to tell the image lib which image to process
        $img_array['source_image'] = $fInfo['full_path'];
        $img_array['width'] = 113;
        $img_array['height'] = 75;

        $this->load->library('image_lib', $img_array);

        if (!$this->image_lib->resize())
        {
            echo $this->image_lib->display_errors(); exit;
        }

        if($fInfo['file_ext'] ==='.gif'||$fInfo['file_ext'] ==='.jpg'|| $fInfo['file_ext'] ==='.jpeg' || $fInfo['file_ext'] ==='.png'|| $fInfo['file_ext'] ===''){
            $insert = array(
                'inner_image' =>$fInfo['file_name'],
                'description' => $this->input->post('description'),
                'status' => $this->input->post('status')
            );
            $check = $this->mdl_inner->add_image($insert);
            if($check){
                $this->session->set_flashdata('success',"Image Added Sucessfully");
                redirect('admin/inner_gallery/add_images/', 'refresh');  
            }
        }else{
            $this->session->set_flashdata('error',"Upload Proper Image Format");
            redirect('admin/inner_gallery/add_images/', 'refresh');
        }
    }
    $arrData['middle'] = 'admin/inner/add_image';
    $this->load->view('admin/template',$arrData);
}

thanks guys but i solve this problem. 谢谢大家,但我解决了这个问题。 via loading library in constructor 通过在构造函数中加载库

 $this->load->library('image_lib');

after that added two line code 之后添加了两个行代码

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

and remove this line 并删除此行

 $this->load->library('image_lib', $img_array);

my final code is 我的最终代码是

public function add_images(){

    $this->form_validation->set_rules('description','Description','required');
    $this->form_validation->set_rules('status','Status','required');

    if($this->form_validation->run() == TRUE) {
         // print_r($this->input->post());
        $config['upload_path'] = 'public/img/inner_images/';
        $config['allowed_types'] = 'gif|jpg|jpeg|png';   // upload only valid images            
        // update library setting of upload
        $this->load->library('upload', $config);
        //upload image 
        $this->upload->do_upload('image');
        $fInfo = $this->upload->data(); // get all info of uploaded file

        //for image resize
        $img_array = array();
        $img_array['image_library'] = 'gd2';
        $img_array['maintain_ratio'] = TRUE;
        $img_array['create_thumb'] = TRUE;
        //you need this setting to tell the image lib which image to process
        $img_array['source_image'] = $fInfo['full_path'];
        $img_array['width'] = 113;
        $img_array['height'] = 75;

        $this->image_lib->clear(); // added this line
        $this->image_lib->initialize($img_array); // added this line
        if (!$this->image_lib->resize())
        {
            echo $this->image_lib->display_errors(); exit;
        }
        if($fInfo['file_ext'] ==='.gif'||$fInfo['file_ext'] ==='.jpg'|| $fInfo['file_ext'] ==='.jpeg' || $fInfo['file_ext'] ==='.png'|| $fInfo['file_ext'] ===''){
            $insert = array(
                'inner_image' =>$fInfo['file_name'],
                'description' => $this->input->post('description'),
                'status' => $this->input->post('status')
            );
            $check = $this->mdl_inner->add_image($insert);
            if($check){
                $this->session->set_flashdata('success',"Image Added Sucessfully");
                redirect('admin/inner_gallery/add_images/', 'refresh');  
            }
        }else{
            $this->session->set_flashdata('error',"Upload Proper Image Format");
            redirect('admin/inner_gallery/add_images/', 'refresh');
        }
    }
    $arrData['middle'] = 'admin/inner/add_image';
    $this->load->view('admin/template',$arrData);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM