이 패키지는 Laravel 6.0 이상의 spatie/image-optimizer 통합입니다. 다양한 이미지 최적화 도구 체인을 통해 PNG, JPG, SVG 및 GIF를 실행하여 최적화할 수 있습니다. 패키지는 시스템에 설치된 최적화 바이너리를 자동으로 감지하여 사용합니다.
사용 방법은 다음과 같습니다.
use ImageOptimizer ;
// the image will be replaced with an optimized version which should be smaller
ImageOptimizer:: optimize ( $ pathToImage );
// if you use a second parameter the package will not modify the original
ImageOptimizer:: optimize ( $ pathToImage , $ pathToOptimizedImage );
당신은 당신이 말하는 정면을 좋아하지 않습니까? 괜찮아요! 컨테이너에서 구성된 SpatieImageOptimizerOptimizerChain
인스턴스를 확인하세요.
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
패키지에는 요청의 모든 이미지를 자동으로 최적화하는 미들웨어도 포함되어 있습니다.
Laravel을 사용하지 마십시오. 괜찮아요! 기본 spatie/image-optimizer를 직접 사용하십시오.
우리는 동급 최고의 오픈 소스 패키지를 만드는 데 많은 리소스를 투자합니다. 유료 제품 중 하나를 구매하여 우리를 지원할 수 있습니다.
귀하가 사용하고 있는 당사 패키지를 언급하면서 귀하의 고향에서 엽서를 보내주셔서 진심으로 감사드립니다. 연락처 페이지에서 주소를 확인하실 수 있습니다. 우리는 수신된 모든 엽서를 가상 엽서 월에 게시합니다.
작곡가를 통해 패키지를 설치할 수 있습니다.
composer require spatie/laravel-image-optimizer
패키지가 자동으로 등록됩니다.
패키지는 이미지를 최적화하기 위해 여러 바이너리를 사용합니다. 설치 방법에 대해 알아보려면 기본 이미지 최적화 패키지의 추가 정보에 있는 최적화 도구 섹션을 참조하세요. 해당 읽어보기에는 이러한 도구가 이미지에 어떤 작업을 수행하는지에 대한 정보도 포함되어 있습니다.
패키지에는 이미지를 최적화하기 위한 몇 가지 정상적인 기본값이 제공됩니다. 구성 파일을 게시하여 해당 구성을 수정할 수 있습니다.
php artisan vendor:publish --provider= " SpatieLaravelImageOptimizerImageOptimizerServiceProvider "
게시될 config/image-optimizer
파일의 내용은 다음과 같습니다.
use Spatie ImageOptimizer Optimizers Svgo ;
use Spatie ImageOptimizer Optimizers Optipng ;
use Spatie ImageOptimizer Optimizers Gifsicle ;
use Spatie ImageOptimizer Optimizers Pngquant ;
use Spatie ImageOptimizer Optimizers Jpegoptim ;
use Spatie ImageOptimizer Optimizers Cwebp ;
return [
/**
* When calling `optimize` the package will automatically determine which optimizers
* should run for the given image.
*/
' optimizers ' => [
Jpegoptim::class => [
' -m85 ' , // set maximum quality to 85 %
' --strip-all ' , // this strips out all text information such as comments and EXIF data
' --all-progressive ' // this will make sure the resulting image is a progressive one
],
Pngquant::class => [
' --force ' // required parameter for this package
],
Optipng::class => [
' -i0 ' , // this will result in a non-interlaced , progressive scanned image
' -o2 ' , // this set the optimization level to two ( multiple IDAT compression trials )
' -quiet ' // required parameter for this package
],
Svgo::class => [
' --disable=cleanupIDs ' // disabling because it is known to cause trouble
],
Gifsicle::class => [
' -b ' , // required parameter for this package
' -O3 ' // this produces the slowest but best results
],
Cwebp::class => [
' -m 6 ' , // for the slowest compression method in order to get the best compression .
' -pass 10 ' , // for maximizing the amount of analysis pass .
' -mt ' , // multithreading for some speed improvements .
' -q 90 ' , //quality factor that brings the least noticeable changes .
],
],
/**
* The maximum time in seconds each optimizer is allowed to run separately.
*/
' timeout ' => 60 ,
/**
* If set to `true` all output of the optimizer binaries will be appended to the default log.
* You can also set this to a class that implements `PsrLogLoggerInterface`.
*/
' log_optimizer_activity ' => false ,
];
애플리케이션에 업로드되는 이미지를 자동으로 최적화하려면 http 커널에 SpatieLaravelImageOptimizerMiddlewaresOptimizeImages::class
추가하세요.
// app/Http/Kernel.php
protected $ middlewareAliases = [
...
' optimizeImages ' => Spatie LaravelImageOptimizer Middlewares OptimizeImages::class,
];
컨테이너에서 구성된 SpatieImageOptimizerOptimizerChain
인스턴스를 확인할 수 있습니다.
// the image will be replaced with an optimized version which should be smaller
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
// if you use a second parameter the package will not modify the original
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage , $ pathToOptimizedImage );
use ImageOptimizer ;
// the image will be replaced with an optimized version which should be smaller
ImageOptimizer:: optimize ( $ pathToImage );
// if you use a second parameter the package will not modify the original
ImageOptimizer:: optimize ( $ pathToImage , $ pathToOptimizedImage );
당신은 당신이 말하는 정면을 좋아하지 않습니까? 괜찮아요! 컨테이너에서 구성된 SpatieImageOptimizerOptimizerChain
인스턴스를 확인하세요.
app ( Spatie ImageOptimizer OptimizerChain::class)-> optimize ( $ pathToImage );
optimizeImages
-미들웨어를 사용하는 경로에 대한 요청에서 모든 이미지는 자동으로 최적화됩니다.
Route:: middleware ( ' optimizeImages ' )-> group ( function () {
// all images will be optimized automatically
Route:: post ( ' upload-images ' , ' UploadController@index ' );
});
자신만의 최적화 프로그램을 만드는 방법을 배우려면 기본 spatie/image-optimizer 패키지의 추가 정보에 있는 "사용자 정의 최적화 프로그램 작성" 섹션을 읽어보세요.
구성 파일의 optimizers
배열에 키로 최적화 프로그램의 정규화된 클래스 이름을 추가할 수 있습니다.
다음은 최적화 프로그램에 의해 수행된 몇 가지 변환 예시입니다.
최근 변경된 사항에 대한 자세한 내용은 CHANGELOG를 참조하세요.
composer test
자세한 내용은 CONTRIBUTING을 참조하세요.
보안 관련 버그를 발견한 경우 이슈 트래커를 사용하는 대신 [email protected]로 메일을 보내주세요.
이 패키지(MIT 라이선스)를 무료로 사용할 수 있지만, 귀하의 프로덕션 환경에 적용된다면 귀하가 사용하고 있는 패키지를 언급하면서 고향에서 엽서를 보내주시면 감사하겠습니다.
주소는 Spatie, Kruikstraat 22, 2018 Antwerp, Belgium입니다.
우리는 받은 모든 엽서를 회사 웹사이트에 게시합니다.
요청의 모든 파일을 최적화하는 미들웨어에 대한 아이디어는 Approach/laravel-image-optimizer에서 가져왔습니다.
MIT 라이센스(MIT). 자세한 내용은 라이센스 파일을 참조하십시오.