php - make - Cambiar el tamaño del archivo de imagen laravel 5
laravel image:: (1)
Instalé el parche "intervención / imagen", "debo dominar" para hacer que mi imagen reduzca su tamaño a 300 por 300. He hecho algunos formularios y siempre me aparece el mismo error.
Llamar a una función miembro resize () en una cadena
que obtuvo el error?
Controlador
public function updateProfile() {
$file = Input::file(''imagem'');
$profileData = Input::except(''_token'');
$validation = Validator::make($profileData, User::$profileData);
if ($validation->passes()) {
if ($file == null) {
User::where(''id'', Input::get(''id''))->update($profileData);
Session::flash(''message'', ''Perfil editado com sucesso'');
return view(''backend/perfil.index'');
}
$file = array_get($profileData,''imagem'');
$destinationPath = ''imagens/perfil'';
$extension = $file->getClientOriginalExtension();
$filename = rand(11111, 99999) . ''.'' . $extension;
$reduzir = $filename -> resize (300,300);
$profileData[''imagem''] = $filename;
$upload_success = $file->move($destinationPath, $filename);
User::where(''id'', Input::get(''id''))->update($profileData);
Session::flash(''message'', ''Perfil editado com sucesso'');
return Redirect::to(''backend/perfil'');
} else {
return Redirect::to(''backend/perfil'')->withInput()->withErrors($validation);
}
}
El problema podría deberse a estas razones
¿Ha agregado este alias en su app.php
''aliases'' => [
//add these three at the bottom
''Form'' => Illuminate/Html/FormFacade::class,
''HTML'' => Illuminate/Html/HtmlFacade::class,
''Image'' => Intervention/Image/Facades/Image::class
],
Creo que ya tienes formulario y html helper.
Y usa esta función en el controlador
es decir, solo pase el valor de la imagen y el tamaño como el Parámetro de esta función
En el controlador, acaba de llamar a la función siguiente como
$resizedImage = $this->resize($image, $request->get(''image_size''));
Y la función resize()
se da a continuación
private function resize($image, $size)
{
try
{
$extension = $image->getClientOriginalExtension();
$imageRealPath = $image->getRealPath();
$thumbName = ''thumb_''. $image->getClientOriginalName();
//$imageManager = new ImageManager(); // use this if you don''t want facade style code
//$img = $imageManager->make($imageRealPath);
$img = Image::make($imageRealPath); // use this if you want facade style code
$img->resize(intval($size), null, function($constraint) {
$constraint->aspectRatio();
});
return $img->save(public_path(''images''). ''/''. $thumbName);
}
catch(Exception $e)
{
return false;
}