Php 如何使用Codeigniter上传具有多个维度的单个图像?

Php 如何使用Codeigniter上传具有多个维度的单个图像?,php,image,codeigniter,image-resizing,image-upload,Php,Image,Codeigniter,Image Resizing,Image Upload,上传一张原始大小的图像后,我可以将该图像保存在文件夹和数据库中 现在我想在上传时将同一个图像调整为多个维度。我不知道怎么做。这是我的密码 控制器: $newpath = './img/Pics/'.$user_id; if (!is_dir($newpath)){ mkdir($newpath, 0777); } $config['upload_path'] = $newpath; $config['allowed_types'] = 'gif|jpg|png|jpeg|pdf';

上传一张原始大小的图像后,我可以将该图像保存在文件夹和数据库中

现在我想在上传时将同一个图像调整为多个维度。我不知道怎么做。这是我的密码

控制器:

$newpath = './img/Pics/'.$user_id;

if (!is_dir($newpath)){
    mkdir($newpath, 0777);
}

$config['upload_path'] = $newpath;
$config['allowed_types'] = 'gif|jpg|png|jpeg|pdf';
$config['overwrite'] = TRUE;
$config['max_width']  = '256';
$config['max_height']  = '256';
$this->load->library('upload', $config);
$this->upload->initialize($config);
$field_name ="reg_pic";
$rgpic="0";

if (!$this->upload->do_upload($field_name)) {
    $error = $this->upload->display_errors();
    $data['error']=$error;
} 
else {
    $data = $this->upload->data();
    $regpicname= $user_id.'/'.$data['file_name'];
    $rgpic="1";
}

if ($rgpic!=0) {
    $data = array(
        'reg_image'=>$regpicname
    );
} 
请帮我解决这个问题。

使用图像库

  $this->load->library('image_lib');   
     $newpath = './img/Pics/'.$user_id;
               if(!is_dir($newpath)){
                mkdir($newpath, 0777);
                }
                $config['upload_path'] = $newpath;
                $config['allowed_types'] = 'gif|jpg|png|jpeg|pdf';
                $config['overwrite'] = TRUE;
                $config['max_width']  = '256';
                $config['max_height']  = '256';
                $this->load->library('upload', $config);
                $this->upload->initialize($config);
                $field_name ="reg_pic";
                $rgpic="0";
                if ( !$this->upload->do_upload($field_name))
                {
                $error = $this->upload->display_errors();
                $data['error']=$error;
                }
                else
                {
                $data = $this->upload->data();
                $regpicname= $user_id.'/'.$data['file_name'];
                $rgpic="1";


                 if($rgpic!=0)
                 {
               $data = array(
                           'reg_image'=>$regpicname
                  );

$thumb='thumb_'.$regpicname;
                   $data=array('upload_data' => $this->upload->data());
                    $config['image_library'] = 'gd2';
                    $config['source_image'] =  $data['upload_data']['full_path'];
                    $config['new_image'] =  $data['upload_data']['full_path'].'/thumb/'.$thumb;
                    $config['maintain_ratio'] = FALSE;
                    $config['width'] = 160;
                    $config['height'] = 160;

                    $this->image_lib->initialize($config);

                    if(!$this->image_lib->resize())
                    {
                        echo('<pre>');
                        echo ($this->image_lib->display_errors());
                    }
                }
               } 
有关更多详细信息,请参阅


可能的副本请给我一些关于这方面的想法。我完全没有意识到这一点。上传图片后检查一下,你可以使用调整大小功能和covnert来调整尺寸。