genealabs / laravel-imagery
提供优化后的图像以加快页面加载速度。
Requires
- php: >=7.0.0
- intervention/image: ^2.3
- jenssegers/model: ^1.1
Requires (Dev)
- doctrine/dbal: ^2.5
- fzaninotto/faker: ~1.4
- jakub-onderka/php-parallel-lint: *
- laravel/laravel: 5.5.*
- mockery/mockery: 0.9.*
- pdepend/pdepend: *
- phploc/phploc: *
- phpmd/phpmd: *
- phpunit/phpunit: *
- sebastian/phpcpd: *
- squizlabs/php_codesniffer: *
- symfony/css-selector: 3.2.*
- symfony/dom-crawler: 3.2.*
This package is auto-updated.
Last update: 2024-08-29 04:48:42 UTC
README
注意:仍在初期开发中,尚未启用。初始版本将在下周左右发布。请保持关注。 :)
目标
为开发者提供一种简化的解决方案,以服务于动态和优化后的图像,无论用户上传的是否是未优化的图像。这对于博客和CMS来说尤为重要。
原因
有一些在线第三方服务可以处理这个问题。但如果您不想承担额外费用或复杂性,或者在内部网络环境中服务敏感图像,而这些图像无法信任第三方供应商,怎么办?本包旨在填补这一空白,并且还可以通过快速加载和适当的尺寸来改善您应用程序的用户体验。
安装
- 引入包
composer require genealabs/imagery
- 在
\config\app.php
中注册服务提供者
GeneaLabs\LaravelImagery\Providers\LaravelImageryService::class,
- 发布资产
php artisan imagery:publish --assets
配置
设置
要添加的注解...
<?php return [ 'storage-folder' => 'imagery-cache/', 'size-presets' => [ 'thumbnail' => 150, 'extra-small' => 480, 'small' => 768, 'medium' => 992, 'large' => 1200, ] ];
队列
建议设置异步队列驱动程序来处理图像生成。有关详细信息,请参阅 https://laravel.net.cn/docs/5.4/queues。项目将被派发到名为 imagery
的单独队列中。
使用
Blade
@imageryImg
输出一个 <img src="..." width="..." height="...">
标签。
@imageryPicture
输出一个多分辨率、响应式的 <picture>
标签。
选项
alwaysPreserveAspectRatio
type: bool, default: true 如果设置为 false,允许图像变形。
doNotCreateDerivativeImages
type: bool, default: false 阻止 Laravel Imagery 自动创建预设图像尺寸。这通常应该开启,除非特别不需要。
overrideScreenConstraint
type: bool, default: false 允许覆盖将图像限制到屏幕尺寸。
screenConstraintMethod
type: string, options: 'contain|cover', default: contain. 确定屏幕尺寸限制的工作方式。就像CSS中的 background-size
属性一样。cover
将尝试将图像大小调整到提供的大小边界(如果没有提供,则使用屏幕大小),而 contain
将将图像调整到适合边界。
计划中的功能
- 检测访客的屏幕尺寸并为它优化图像。
- 您的图像不需要在公共文件夹中,imagery会在其自己的公共文件夹中创建衍生图像。
- 通过无损压缩进一步优化衍生图像(使用异步队列,以避免阻塞)。