загрузка файла — измените размер загруженного изображения с помощью переполнения стека

Мне нужно изменить размер загруженного изображения и сохранить его с заданным разрешением. Предположим, что пользователь загружает только одно изображение, и я сохраняю его как 35×35, 100×100 и 512×512 после завершения загрузки. наконец его одну загрузку сохраните в моей папке как 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 --------//
}

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

0

Решение

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

//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();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]