brendt / responsive-images
使用 PHP 创建响应式图片,利用 srcset 和 sizes 规范。
1.9.1
2017-04-23 07:10 UTC
Requires
- php: >=7.0
- intervention/image: ^2.3
- ps/image-optimizer: ^1.0
- symfony/filesystem: ^3.1
- symfony/finder: ^3.1
Requires (Dev)
- larapack/dd: ^1.0
- phpunit/phpunit: ^5.0
README
响应式图片
自动生成响应式图片,以支持 srcset 和 sizes 规范。(http://responsiveimages.org/)
composer require brendt/responsive-images
用法
use Brendt\Image\ResponsiveFactory; $factory = new ResponsiveFactory(); $image = $factory->create('img/image.jpeg');
<img src="<?= $image->src() ?>" srcset="<?= $image->srcset() ?>"/>
此示例将生成类似以下内容
<img src="/image.jpeg"
srcset="/image-384.jpg 384w,
/image-768.jpg 768w,
/image-1152.jpg 1152w,
/image-1536.jpg 1536w,
/image.jpg 1920w" />
配置
ResponsiveFactory 可以接收一个 ResponsiveFactoryConfigurator 对象,用于设置所需的参数。默认配置器 DefaultConfigurator 已提供,并使用以下参数:
[
'driver' => 'gd',
'includeSource' => true,
'publicPath' => './',
'sourcePath' => './',
'rebase' => false,
'enableCache' => false,
'optimize' => false,
'scaler' => 'filesize',
'stepModifier' => 0.5,
'minFileSize' => 5000,
'maxFileSize' => null,
'minWidth' => 300,
'maxWidth' => null,
'sizes' => [ 1920, 840, 300 ],
'optimizerOptions' => [],
]
您可以通过向 DefaultConfigurator 提供一个数组来覆盖这些参数,或创建一个全新的实现 ResponsiveFactoryConfigurator 的配置器。
$factory = new ResponsiveFactory(new DefaultConfigurator([ 'driver' => 'imagick', 'sourcePath' => './src', 'publicPath' => './public', 'enableCache' => true, ]));
所有配置选项
driver:要使用的图像驱动程序。默认为gd。可能的选项是gd或imagick。includeSource:是否在srcset中包含源图像。默认为true。sourcePath:加载图像源文件的路径。默认为./。publicPath:渲染图像文件的路径。默认为./。rebase:在搜索源目录时忽略请求的图像路径。默认为false。enableCache:启用或禁用图像缓存。启用缓存不会覆盖现有图像。默认为false。optimize:启用或禁用不同优化器的使用(如果已安装在系统上)。默认为false。scaler:要使用的缩放算法。默认为filesize。可能的选项是filesize、width或sizes。stepModifier:创建不同图像尺寸时使用的百分比(介于 0 和 1 之间)。此修改器越高,将渲染更多的图像变体。默认为0.5。minFileSize:以字节为单位的图像最小文件大小。默认为5000B(5KB)。maxFileSize:以字节为单位的图像最大文件大小。默认为null。minWidth:以像素为单位的图像最小尺寸。不渲染小于此数值的图像。默认为300像素。maxWidth:以像素为单位的图像最大尺寸。不渲染小于此数值的图像。默认为null。sizes:当启用sizes缩放器时使用此参数。此缩放器将根据此数组生成一组固定尺寸,预期值是生成的图像宽度。默认为[](空数组)。optimizerOptions:传递给图像优化库的选项。有关更多信息,请参阅 https://github.com/psliwa/image-optimizer。
路径
使用 sourcePath 参数定义图像源文件的位置。在第一个示例和上述配置中,图像文件应保存在 ./src/img/image.jpeg。
使用 publicPath 参数将渲染的图像保存到。此路径应为您的网站公共目录。在上面的示例中,图像将渲染到 ./public/img/image.jpeg。
路径重写
当启用 rebase 选项时,源文件查找方式将有所不同:只使用文件名在源目录中搜索文件。以下是一个例子。
// Without rebase $options = [ 'sourcePath' => './src/images', 'publicPath' => './public', ]; $image = $factory->create('/img/responsive/image.jpeg'); // Source file is searched in './src/images/img/responsive/image.jpeg' // Public files are saved in './public/img/responsive/image-x.jpg'
// With rebase $options = [ 'sourcePath' => './src/images', 'publicPath' => './public', 'rebase' => true, ]; $image = $factory->create('/img/responsive/image.jpeg'); // Source file is searched in './src/images/image.jpeg' // Public files are saved in './public/img/responsive/image-x.jpg'