簡體   English   中英

調整圖像文件laravel 5的大小

[英]Resize image file laravel 5

我安裝了補丁“干預/圖像”,“必須掌握”,以使我的圖像將其大小減少到300乘以300.我已經做了一些表格,在我看來總是一樣的錯誤。

在字符串上調用成員函數resize()

得到錯誤?

調節器

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);
    }
}   

問題可能是由於這些原因

您是否在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
],

我相信你已經有了form和html幫助器。

並在Controller中使用此功能

即,只需將圖像和大小值作為參數傳遞給此函數

在控制器中,您只需調用以下函數即可

 $resizedImage  =   $this->resize($image, $request->get('image_size'));

並且resize()函數如下所示

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;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM