gregwar / image-bundle
图片处理包
Requires
- php: >=5.3.3
- ext-gd: *
- gregwar/image: 2.*
- symfony/asset: *
- symfony/framework-bundle: ^2.3 || ^3.0 || ^4.0 || ^5.0 || ^6.0
- twig/twig: ^2.0 || ^3.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-21 01:27:15 UTC
README
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 服务器上已安装 GD 和 exif 扩展
许可证
此包采用 MIT 许可证