2017-02-23 1 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 및 페이지 통찰력을 사용하여 gzipping을 사용하도록 설정했음을 알리면 압축 기능이 활성화되어 있지만 아직도 이미지 크기를 줄이기 위해 오류가 발생하고 페이지 속도는 20-28 사이입니다. –

+0

이미지 조정을 사용하여 이미지의 크기를 조정하고 크기 조정 및 원본 버전을 저장할 수 있습니다. 크기가 조정 된 버전은 나중에 표시 할 치수가 있어야합니다. 따라서 품질 손실은 볼 수 없습니다. 여전히 원본이 필요하다면이 방법으로도 사용할 수 있습니다. –

답변

1

당신은 큰에 (어느 크기 또는 해상도) 방법 이미지를 업로드 할 수 있습니다 사용자로 웹 사용에 대한 이미지를 최적화 할 필요가있다. 크기를 더 줄이려면 이미지에서 메타 데이터를 제거 할 수도 있습니다. 중재 이미지 Laravel에서 웹 사용을위한 이미지 크기 조정/최적화에 적합합니다. 웹 페이지를로드 할 때 최적화 된 버전이 사용되도록 저장하기 전에 이미지를 최적화해야합니다.

Intervention Image

+0

Laravel에 통합하려고했지만 다음 작곡가 명령을 실행하려고했으나 오류가 발생합니다. php composer.phar가 개입해야합니다/이미지 입력 파일을 열 수 없습니다 : 작곡가. phar : php composer.phar가 개입해야합니다/ –

+0

laravel 프로젝트 디렉토리에서 명령을 실행하고 있습니까? – TedRed

+0

예. 나는이 블로그를 읽고 지금은 작곡가가 성공적으로 업데이트되었습니다. http://devartisans.com/articles/resize-images-laravel5.1 나는 다음 실행해야했습니다 알고 싶어 장인 명령을 PHP 장인 공급 업체 : 게시 --provider = "개입 \ 이미지 \의 ImageServiceProviderLaravel5" –

0

https://tinypng.com 이미지를 압축하기위한 API 서비스를 제공합니다. Laravel에 PHP 라이브러리를 설치하기 만하면 웹 사이트에서 개발자 키를 얻을 수 있습니다. 그 후 아래 코드를 추가하여 업로드 된 이미지를 압축 할 수 있습니다. 코드에서 'storage'디렉토리 아래에 파일을 저장했다고 가정합니다. 여기

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

업로드하고 당신이 정말로 필요가 없습니다 그래서 대부분의 웹 서버와 webbrowsers 상자 밖으로 내용의 지원 Gzip으로 압축을 생각 Laravel http://artisansweb.net/guide-upload-compress-images-laravel

+0

코드를 압축하여 제공하십시오. – timiTao

+0

Laravel 프로젝트에서 'composer require tinify/tinify'명령을 실행하여 라이브러리를 먼저 설치하십시오. 그리고 위의 코드를 시도하십시오. –

관련 문제