Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在codeigniter中,如何在不降低高度和宽度的情况下减小图像大小?_Php_Image_Codeigniter_Upload - Fatal编程技术网

Php 在codeigniter中,如何在不降低高度和宽度的情况下减小图像大小?

Php 在codeigniter中,如何在不降低高度和宽度的情况下减小图像大小?,php,image,codeigniter,upload,Php,Image,Codeigniter,Upload,我正在尝试在Codeigniter中创建图像上传功能。上载文件时,我希望保持高度和宽度,但大小应减少,例如从10kb减少到5KB 下面的代码工作正常,文件正在上载,但大小相同。 可以进行哪些更改以使其正确 if($_FILES['logo']['name'] != '') { $getimagesize = getimagesize($_FILES['logo']['tmp_name']); $w = $geti

我正在尝试在Codeigniter中创建图像上传功能。上载文件时,我希望保持高度和宽度,但大小应减少,例如从10kb减少到5KB

下面的代码工作正常,文件正在上载,但大小相同。 可以进行哪些更改以使其正确

        if($_FILES['logo']['name'] != '')
        {

            $getimagesize  = getimagesize($_FILES['logo']['tmp_name']);
            $w = $getimagesize[0];
            $h = $getimagesize[1];
            #NEW CODE
            $config['upload_path'] = './upload/'; 
            $config['allowed_types'] = 'jpg|jpeg|png';
            $this->load->library('upload',$config);
            if(!$this->upload->do_upload('logo'))
            {
                echo $this->upload->display_errors();
            }#EOF if(!$this->upload->do_upload('logo'))
            else
            {
                $data = $this->upload->data();
                $config = [
                    'image_library' => 'gd',
                    'source_image' => './upload/'.$data['file_name'],
                    'create_thumb' => FALSE,
                    'maintain_ratio' => FALSE,
                    'quality' => '60',
                    'height' => $h,
                    'width' => $w,
                    'new_image' => './upload/'.$data['file_name']
                ];
                $this->load->library('image_lib',$config);
                if($this->image_lib->resize())
                {
                    $this->session->set_flashdata('success','image saved');
                    redirect('welcome/school_details');
                }
                #Adding data into databse


            }
更改配置上载:

'quality' => '60'


是一样的。文件大小没有改变,这是我看到的唯一问题。删除上传的图像,再试一次,可能它没有覆盖您以前的测试。@alex这不是问题所在。每次上载文件时,文件名都会更改。请使用php内置函数,如和set quality.FYI,如果不更改图像尺寸,则没有真正的理由获取和设置图像尺寸。@alex这不是问题所在。每次上传文件时都会更改名称。@Yahya:我试图使用imagecreatefromjpeg函数来完成,但它是否给出了错误。由于出现错误,未通过HTTP打开文件夹。
'quality' => '60%'