just/thumbnailbundle

一个使用GD库动态创建缩略图的Symfony扩展包

2.0.34 2023-03-20 13:21 UTC

README

概述

这是一个为Symfony2、Symfony3和Symfony4框架设计的扩展包,它可以在首次请求时创建缩略图。缩略图随后会使用Symfony缓存系统存储。它可以根据指定的大小创建图像的缩略图并将其存储在缓存中,直到图像发生变化。该扩展包具有新的面部检测功能,以避免裁剪面部。

SensioLabsInsight

许可证

此扩展包在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

knpbundles.com