当图像调整大小时,Codeigniter图像旋转

I have an image with the dimension of (W-3000 X H-4000). When i upload it and resize, it always show like landscape mode, mean new dimension is w-1067 X h-800. I want to create this picture either 800X600 for landscape or 600X800 for portrait. Here is my code:

    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'jpg|jpeg|gif|png';
    $config['max_size'] = '5000';
    $this->load->library('upload', $config);

    //check if a file is being uploaded
    if(strlen($_FILES["testimg"]["name"])>0){

        if ( !$this->upload->do_upload("testimg"))//Check if upload is unsuccessful
        {
            $error = array('error' => $this->upload->display_errors());
            print_r($errors);
        }
        else
        {

            $config['image_library'] = 'gd2';
            $config['source_image'] = $this->upload->upload_path.$this->upload->file_name;
            $config['width'] = '1';
            $config['height'] = '800';
            $config['maintain_ratio'] = TRUE;
            $config['master_dim'] = 'height';
            $this->load->library('image_lib',$config); 

            if (!$this->image_lib->resize()){  
                echo "error";
            }else{
                echo "success";
            }
       }      
   }  

In my code height is always 800px in size. It is ok for 3000X4000 dimension image. But what about when i use 4000X3000 dimension image? Can any one help me about this issue? Thanks

Thanks @Rpojka for your answer. But I fixed it with exif_read_data() . Here is my code:

    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'jpg|jpeg|gif|png';
    $config['max_size'] = '6048';
    $this->load->library('upload', $config);

    //check if a file is being uploaded
    if(strlen($_FILES["testimg"]["name"])>0){

        if ( !$this->upload->do_upload("testimg"))//Check if upload is unsuccessful
        {
            $error = array('error' => $this->upload->display_errors());
            print_r($errors);
        }
        else
        {

            $config['image_library'] = 'gd2';
            $config['source_image'] = $this->upload->upload_path.$this->upload->file_name;
            $filename = $_FILES['testimg']['tmp_name'];


            $imgdata=exif_read_data($this->upload->upload_path.$this->upload->file_name, 'IFD0');


            list($width, $height) = getimagesize($filename);
            if ($width >= $height){
                $config['width'] = 800;
            }
            else{
                $config['height'] = 800;
            }
            $config['master_dim'] = 'auto';


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

            if (!$this->image_lib->resize()){  
                echo "error";
            }else{

                $this->image_lib->clear();
                $config=array();

                $config['image_library'] = 'gd2';
                $config['source_image'] = $this->upload->upload_path.$this->upload->file_name;


                switch($imgdata['Orientation']) {
                    case 3:
                        $config['rotation_angle']='180';
                        break;
                    case 6:
                        $config['rotation_angle']='270';
                        break;
                    case 8:
                        $config['rotation_angle']='90';
                        break;
                }

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

            }
       }      
   }  

Here is the exif orientation chart

 1        2       3      4         5            6           7          8

888888  888888      88  88      8888888888  88                  88  8888888888
88          88      88  88      88  88      88  88          88  88      88  88
8888      8888    8888  8888    88          8888888888  8888888888          88
88          88      88  88
88          88  888888  888888
$filename = $_FILES['testing']['tmp_name'];
list($width, $height) = getimagesize($filename);

if ($width >= $height)
{
    $config['width'] = 800;
    $config['master_dim'] = 'width';
}
else
{
    $config['height'] = 800;
    $config['master_dim'] = 'height';
}

Even shorter, you can use 'auto' parameter for master_dim that will determine which value is greater - width or height.

$filename = $_FILES['testing']['tmp_name'];
list($width, $height) = getimagesize($filename);

if ($width >= $height)
{
    $config['width'] = 800;
}
else
{
    $config['height'] = 800;
}

$config['master_dim'] = 'auto';