gregwar/image-bundle

图片处理包

安装次数: 1,322,846

依赖项: 10

建议者: 0

安全性: 0

星星: 195

关注者: 14

分支: 50

开放问题: 34

类型:symfony-bundle

v3.0.2 2023-02-20 22:14 UTC

README

paypal

GregwarImageBundle 为 Symfony 和 Twig 提供简单的图片操作和 API

如果你使用的是比 Symfony 4 更早的版本,请使用 2.* 版本,否则可以使用 3.*

安装

步骤 1: 下载 GregwarImageBundle

运行以下 composer 命令

    composer req gregwar/image-bundle

步骤 2: 配置包并设置目录

将以下配置添加到你的 app/config/config.yml

gregwar_image: ~

如果你要自定义缓存目录名称,可以指定它

gregwar_image:
    cache_dir:  my_cache_dir

创建缓存目录并更改权限,以便网络服务器可以写入它

mkdir web/cache
chmod 777 web/cache

你还可以启用在给定文件不存在时抛出异常的功能

gregwar_image:
    throw_exception: true

如果你不抛出异常,可以设置 fallback_image,以在此情况下渲染图像

gregwar_image:
    fallback_image: /path/to/your/fallback.jpg

如果你需要更改目录层次结构或 Web 的名称(例如,web => public_html),可以设置 web_dir 为你的新 Web 路径

gregwar_image:
    web_dir: %kernel.root_dir%/../../public_html

使用 Symfony Flex

在 Symfony Flex 架构中,你可以创建包含以下内容的 config/packages/gregwar_image.yaml 文件

gregwar_image:
    web_dir: %kernel.root_dir%/../public

使用方法

基础

此包基于 Gregwar's Image 类,并提供简单但强大的 Twig 扩展。例如,你可以这样使用它

<img src="{{ image('linux.jpg').resize(100,100).negate }}" />

这就是全部!如果缓存文件尚不存在,助手将自动创建缓存文件。

可用的方法与 Gregwar's Image 相同。

你也可以使用包资源的逻辑文件名

<img src="{{ image('@AcmeDemoBundle/Resources/images/linux.jpg').resize(100,100).negate }}" />

如果你使用 web_image() 助手,图像文件路径将使用你的应用程序的 web/ 绝对目录作为前缀

<!-- The image some/image.jpg will be prefixed by web directory prefix -->
<img src="{{ web_image('some/image.jpg').resize('10%') }}" />

使用 Image API

图像实例还提供了一个简单的 API,你可以调用一些方法来获取关于处理图像的信息

Image width: {{ image('linux.jpg').width }}px

在控制器中操作图像

图像处理器可以通过名为 image.handling 的服务访问。因此,你可以在你的控制器中这样做

<?php
...
$this->get('image.handling')->open('linux.jpg')
    ->grayscale()
    ->rotate(12)
    ->save('out.jpg')

要求

GregwarImageBundle 需要 PHP 服务器上已安装 GDexif 扩展

许可证

此包采用 MIT 许可证