2017-02-23 53 views
0

私はユーザーが画像をアップロードできる画像ギャラリーのウェブサイトを作っており、それらはフロントエンドで表示されます。私はサイズを減らすためにページの読み込み速度がそれほど影響を及ぼさないように、画像を圧縮する必要があります。私は、画像をアップロードするには、次のコードを使用しています:Laravelでアップロードする前に画像を圧縮する方法は?

$rules = array('file' => 'required'); 
$destinationPath = 'assets/images/pages' 
$validator = Validator::make(array('file' => $file), $rules); 
if ($validator->passes()) { 
    $filename = time() . $uploadcount . '.' . $file->getClientOriginalExtension(); 
    $file->move($destinationPath, $filename); 
    return $filename; 
} else { 
    return ''; 
} 
+0

で画像を圧縮する方法を説明しますブログへのリンクありロスレス圧縮のために何でもしてください。もちろん、これはサーバー>クライアントの方向にのみ影響します。 – apokryfos

+0

@apokryfos私はhtaccessとページの洞察を使ってgzipを有効にしましたが、圧縮は有効になっていますが、まだ画像サイズを減らすためにエラーが表示され、ページのスピードは20-28です。 –

+0

画像の操作を使用して画像のサイズを変更し、サイズ変更したものと元のものの両方を保存することができます。サイズ変更されたバージョンは、後で表示する次元を持つ必要があります。そのため、品質の低下は見られません。あなたがまだオリジナルを必要としている場合は、この方法でそれらを持っていきます。 –

答えて

1

あなたは大(いずれかのサイズや解像度)への道にあるイメージをアップロードすることができるユーザーとしてのWebの使用のために画像を最適化する必要があります。さらにサイズを小さくするには、画像からメタデータを削除することもできます。 Laravelのウェブ使用のための画像のサイズ変更/最適化に最適な介入画像。保存する前にイメージを最適化して、Webページをロードするときに最適化されたバージョンが使用されるようにする必要があります。

Intervention Image

+0

これをLaravelに統合しようとしましたが、次のコンポーザーコマンドを実行しようとしましたが、次のようなエラーが発生します:php composer.pharに介入/画像が必要です。 入力ファイルを開くことができません: phar: php composer.pharが介入する必要があります/画像 –

+0

laravelプロジェクトディレクトリでコマンドを実行していますか? – TedRed

+0

はい。その後私はこのブログを辿り、今作曲者は正常に更新されました。 http://devartisans.com/articles/resize-images-laravel5.1 artisanコマンドを実行する必要があるかどうかを知りたい場合: php artisan vendor:publish --provider = "Intervention \ Image \ ImageServiceProviderLaravel5" –

0

https://tinypng.com画像を圧縮するためのAPIサービスを提供しています。 LaravelにPHPライブラリをインストールして、Webサイトから開発者キーを入手するだけです。その後、以下のコードを追加することで、アップロードした画像を圧縮することができます。コードでは、ファイルを 'storage'ディレクトリに保存していると仮定しています。ここで

$filepath = public_path('storage/profile_images/'.$filename); 
\Tinify\setKey("YOUR_API_KEY"); 
$source = \Tinify\fromFile($filepath); 
$source->toFile($filepath); 

をアップロードし、あなたが本当にする必要はありませんので、私はほとんどのウェブサーバとwebbrowsersボックスのうち、コンテンツのサポートgzippingを考えるLaravel http://artisansweb.net/guide-upload-compress-images-laravel

+0

コードを圧縮してください。 – timiTao

+0

Laravelプロジェクトで 'composer require tinify/tinify'コマンドを実行して、最初にライブラリをインストールします。そして上記のコードを試してみてください。 –

関連する問題