2016-07-05 6 views
1

私はプロファイル写真をアップロードしています。これらの画像は、300×300ピクセルのときにページ上で見た目がよくなります。私はユーザーが自分の画像を切り抜かなければならないことを望んでいません。私は何とかバックエンドで画像を切り抜いて正方形にする必要があります。幼虫のサイズを小さくして画像を切り取る方法5.2

また、私は検証でファイルサイズに制限を設定しましたが、アップロード後にファイルサイズを変更する方法があるかどうかはわかりません。たとえば、私はいくつかのユーザーをプロファイル・ピクチャの小さいバージョンでホームページに表示します。この特定のページのファイル・サイズを減らしてページを高速にロードする方法はありますか。

概要:

  1. 私は、ユーザー登録時にプロフィール写真をトリミングしたい:私はlaravel内の画像には2つの問題があります。
  2. サムネイル画像のサイズを小さくしたいと思います。

プロフィール画像をアップロードするためのコードです。

public function register(Request $request) 
{ 
    $this->validate($request,[ 
     'first_name' => 'required|max:255', 
     'family_name' => 'required|max:255', 
     'password' => 'required|min:6|confirmed', 
     'picture' => 'mimes:jpeg,png|required|max:500', 
     // MAKE DESCRIPTION REQUIRED ON DEPLOY 'description' => 'required|min:50' 
    ]); 

    $user = new User; 
    $user->first_name = $request->first_name; 
    $user->family_name = $request->family_name; 
    $user->password = $request->password; 
    $user->save(); 

    $file = Input::file('picture'); 
    $file->move(public_path().'/images/',$user->id.'.jpg'); 

    $image = new Image; 
    $image->path='/images/'.$user->id.'.jpg'; 
    $image->user_id = $user->id; 
    $image->save(); 

    flash('Thank you for registering. Please verify your email address'); 

ここに私のユーザーのプロフィール画像が表示されます。

<img src={{$image->path}} alt={{$image->path}} style="max-width:300px;max-height:300px;border-radius:10px;"> 
+2

可能な複製http://stackoverflow.com/questions/14649645/resize-image-in-phpとhttp://stackoverflow.com/questions/1855996/crop-image-in-php(一般向けPHPソリューション、それは必ずしもLaravelの質問ではありません) – herrjeh42

+0

サムネイルを追加する面では、@codefocusのようなパッケージを使うことができますが、残念です。特に、普通300x300でかなりうまく圧縮するjpgを使用している場合、サムがどれほど小さいか(ファイルサイズのメリットとシャープネス)と、ユーザーが最終的に大きなイメージ(キャッシュのメリット)をどれくらい表示するかによって異なります。 – ldg

答えて

3

あなたは、このようなこのためInterventionImageとして作曲パッケージを使用してオフ最善だろう。

サーバー上で利用できるものに応じて、GD2またはImageMagickのいずれかを使用します。

+1

このためにライブラリを使用することに同意します。上に述べたものは明らかにLaravelのフックを持っています。それはあなたに "フィット感"のような素敵な機能を提供しますが、あなたは[this](https://fengyuanchen.github.io/cropper/)やハイエンドのサービスでクロッピングを処理する必要がありますそれは自動的なインテリジェントクロッピングを行います。 – ldg

関連する問題