just / thumbnailbundle
一个使用GD库动态创建缩略图的Symfony扩展包
Requires
- php: >=5.4
- ext-fileinfo: *
- ext-gd: *
- doctrine/common: ~2.4
- mauricesvay/php-facedetection: ~0.1
- symfony/framework-bundle: ^2.3 || ^3.4.26 || ^4.1.12
Requires (Dev)
- phpunit/phpunit: 5.6.3
Suggests
- ext-apc: To cache generated Thumbnails using APC
This package is not auto-updated.
Last update: 2024-09-30 20:15:40 UTC
README
概述
这是一个为Symfony2、Symfony3和Symfony4框架设计的扩展包,它可以在首次请求时创建缩略图。缩略图随后会使用Symfony缓存系统存储。它可以根据指定的大小创建图像的缩略图并将其存储在缓存中,直到图像发生变化。该扩展包具有新的面部检测功能,以避免裁剪面部。
许可证
此扩展包在MIT许可证下发布
安装
步骤1:使用Composer
将以下行添加到您的composer.json的require块中
// composer.json
{
// ...
require: {
// ...
"just/thumbnailbundle": "~2.0"
}
}
然后,您可以通过在存放composer.json文件的目录中运行Composer的update
命令来安装新依赖项
$ php composer.phar update
步骤2:注册扩展包
使用以下行修改您的AppKernel
<?php // in AppKernel::registerBundles() $bundles = array( // ... new Just\ThumbnailBundle\JustThumbnailBundle(), // ... );
步骤3:配置扩展包
# app/config/config.yml just_thumbnail: imagesrootdir: "/path/to/the/images/root/dir/on/server/" placeholder: "/path/to/a/placeholder/image.jpg" expiretime: 86400
所有参数都是可选的。默认的imagesrootdir是Symfony网络目录。如果原始图像不可读或未找到,则显示占位符图像。如果没有设置占位符参数,则控制器将返回“404未找到”消息。“expiretime”是缩略图在缓存中的最大年龄(秒)。在此时间后,将重新生成缩略图。默认值为86400(一天)。
缩略图通过使用图像名称、maxx参数、maxy参数、mode参数和创建时间生成的键存储在缓存中。如果其中任何一个参数发生变化,则将重新生成缩略图。
如果尚未完成,您必须定义一个缓存服务
# app/config/config.yml services: cache: class: Doctrine\Common\Cache\ApcuCache
注意
JustThumbnailBundle需要将gd.jpeg_ignore_warning设置为“1”。在php.ini中将gd.jpeg_ignore_warning设置为“1”,并重新启动您的网络服务器。
步骤4:导入JustThumbnailBundle路由文件
在YAML中
# app/config/routing.yml just_thumbnail_bundle: resource: "@JustThumbnailBundle/Resources/config/routing.yml"
或者如果您更喜欢XML
<!-- app/config/routing.xml --> <import resource="@JustThumbnailBundle/Resources/config/routing.yml"/>
使用方法
当调用URL时,将即时生成缩略图
/thumbnails/{mode}/{maxx}x{maxy}/{img}
/thumbnails/{mode}/{maxx}x/{img}
/thumbnails/{mode}/x{maxy}/{img}
参数"mode"
此参数可以设置为"normal"、"crop"、"stretch"和"max"。
- normal: 设置图像的最大高度或宽度,不改变宽高比例;
- crop: 将图像裁剪到给定的高度和宽度,不改变宽高比例;
- stretch: 设置图像的最大高度或宽度,宽高比例改变。
- max: 设置图像的最大高度或宽度,不改变宽高比例;
参数maxx和maxy
"maxx"是生成的缩略图的最大宽度,"maxy"是最大高度。
占位符
您可以通过向URL添加“placeholder”参数来覆盖占位符文件配置。例如:www.yourdomain.tld/thumbnails/stretch/800x225/path/to/image?placeholder=new_placeholder_image.jpg
参数"center"
此参数可以设置为“”,“auto”或“[int],[int]”。默认值为“”。此参数可用于定义图像在裁剪模式下始终可见的中心点。这是为了避免图像的高光被裁剪。如果设置为“auto”,则脚本将尝试检测图像中的面部。如果找到,中心将设置为检测到的面部中心。因此,面部不应该被裁剪。
Twig 辅助函数
您可以使用 twig 辅助函数生成 URL
{{thumbnail({'img':'path/to/image','maxx':320,'maxy':240,'mode':'stretch'})}}
将生成类似以下内容:
/thumbnails/stretch/300x240/path/to/image