Изменить размер загруженного изображения с помощью php

Мне нужно изменить размер загруженного изображения и сохранить его с заданным разрешением. Предположим, что пользователь загружает только одно изображение, и я сохраняю его как 35x35, 100x100 и 512x512 после завершения загрузки. наконец его одну загрузку сохранить в моей папке как 3 изображения с разными разрешениями. Я до этого момента использовал Laravel...

public function postSingleUpload()
    {
        //create the relevant directory to add the user image
        //get the directory name (directory name equals to user id)
        $dirPath = sprintf("images/users/avatar/%s/", Auth::user()->id);
        //create the directory named by user id
        if (!file_exists($dirPath)) {
            mkdir($dirPath, 0700);
        }

        $file = Input::file('image');

        //save image with given resulutions
        //---- this part i need --------//
    }

пожалуйста, помогите мне в этом.

1 ответ

Вот что я сделал, чтобы сохранить загруженное изображение с заданным разрешением:

//First Copy the uploaded image to some location
  Input::file('profilePic')->move('Users/'.$username.'/Wallpics/',$name)

  //Set this attribute for quality after resampling
  $quality = 90;
  $src  = 'Users/'.$username.'/Wallpics/'.$name;

  //Run this on recently saved uploaded image
  $img  = imagecreatefromjpeg($src);

  //get this values from user by submitting form ( either by crop or by textboxes)
  $width=(int)Input::get('w');
  $height=(int)Input::get('h');
  $x=(int)Input::get('x');
  $y=(int)Input::get('y');

  //This is the code to resample the image and generate a new to ur requirements

  $dest = ImageCreateTrueColor($width, $height);
  imagecopyresampled($dest, $img, 0, 0,$x,$y, $width, $height,$width,$height);
  imagejpeg($dest, 'Users/'.$username.'/profilePic/'.$name, $quality);

  //Set the path in database 
  $profile->profilePic=asset('Users/'.$username.'/profilePic/'.$name);
  $profile->save();
Другие вопросы по тегам