izupet / laravel-flyimages
为 Laravel 动态优化图像
1.0.0
2015-11-23 18:07 UTC
Requires
- php: >=5.5.0
- illuminate/support: ~5.1.0
This package is not auto-updated.
Last update: 2024-09-18 18:38:44 UTC
README
根据屏幕分辨率(Bootstrap 网格模式)动态调整/裁剪图像。
先决条件
Imagick (ImageMagick) PHP 扩展
PHP 版本 >= 5.5
Laravel 框架 4 及以上版本
安装
首先,您需要将以下行添加到 composer.json 文件中
{ "require": { "izupet/laravel-flyimages" : "^1.0.0" } }
从终端更新 composer
$ composer update
在 app.php 文件中添加服务提供者
Izupet\FlyImages\FlyImagesServiceProvider::class
Composer 完成工作后,运行此 artisan 命令以生成配置文件
$ php artisan vendor:publish
将此行 JavaScript 代码放入模板的 <head> 标签中。
<script>document.cookie='resolution='+Math.max(screen.width)+'; path=/';</script>
您已完成。
用法
在 flyimages.php 配置文件中自定义路由。此路由将用作模板中图像的路径。
现在,对于您要优化的每个图像,您应将查询字符串附加到路径。可能的参数包括
lg-w lg-h md-w md-h sm-w sm-h xs-w xs-m
此参数的有效值包括
- 像素(整数)数量
- 文本(字符串)auto - 根据相对尺寸自动计算此尺寸(保持比例)
如果屏幕分辨率等于或高于 1200px,则使用 lg 前缀的参数。
如果屏幕分辨率等于或高于 992px 且小于 1200px,则使用 md 前缀的参数。如果没有,则使用最近的父级参数(lg)。
相同的层次结构模式也用于 sm 和 xs 前缀的参数。
为了使一切正常工作,必须为某些前缀参数同时提供宽度和高度。如果没有两者都存在,则将提供原始图像。
####示例
<img src="/optimize/test.jpg?lg-w=400&lg-h=400&md-w=300&md-h=300"/> <img src="/optimize/test.jpg?lg-w=auto&lg-h=700"/> <img src="/optimize/test.jpg?sm-w=400&lg-h=400&md-w=300&xs-h=300"/> Wont work <div style="background-image:url('/optimize/test.jpg?sm-w=256&sm-h=256');"></div>
##缓存
通过 ETAg 头部提供浏览器缓存。不使用服务器端缓存。建议对于非常受欢迎的网站使用反向代理缓存服务器或 CDN。