我有用戶上傳個人資料照片。這些圖片只有300x300像素時才能在頁面上看起來不錯。我不希望用戶必須裁剪自己的圖像。我需要以某種方式自己在後端裁剪圖像,使它們成爲正方形。如何減少大小和裁剪幼蟲圖像5.2
此外,我在驗證中對文件大小設置了限制,但我不確定是否有方法在上傳後更改文件大小。例如,我會在主頁上顯示多個用戶,並且他們的個人資料圖片的版本較小。有什麼方法可以減少此特定頁面上的文件大小,以便頁面加載速度更快。
摘要:我有laravel與圖像的兩個問題:
- 我想在用戶註冊過程裁剪資料圖片。
- 我想在縮略圖的同時降低圖像的大小。
這是我上傳檔案圖片的代碼。
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;">
可能的重複http://stackoverflow.com/questions/14649645/resize-image-in-php和http://stackoverflow.com/questions/1855996/crop-image-in-php(只是尋找一般PHP的解決方案,它不一定是一個Laravel的問題) – herrjeh42
在添加縮略圖方面,你可以使用像@codefocus提到的包,但它可能是矯枉過正的,特別是如果你使用的jpgs通常會在300x300上很好地壓縮,所以它取決於拇指的大小(文件大小的好處和清晰度)以及用戶最終看到較大圖像的可能性(緩存優勢)。 – ldg