句子 / 图像包
图像处理包
Requires
- php: >=5.3.3
- ext-gd: *
- gregwar/image: 2.*
- symfony/framework-bundle: ^2.3 || ^3.0
- twig/twig: ^1.12 || ^2.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-19 09:53:39 UTC
README
GregwarImageBundle
提供了用于 Symfony2 和 Twig 的简单易用的图像操作和 API
安装
步骤 1: 下载 GregwarImageBundle
使用 vendors 脚本
将以下行添加到您的 deps
文件中
[GregwarImageBundle]
git=http://github.com/Gregwar/ImageBundle.git
target=/bundles/Gregwar/ImageBundle
现在,运行 vendors 脚本来下载包
$ php bin/vendors install
使用子模块
如果您更喜欢使用 git 子模块,请运行以下命令
$ git submodule add git://github.com/Gregwar/ImageBundle.git vendor/bundles/Gregwar/ImageBundle $ git submodule update --init
使用 Composer
将以下内容添加到您的 composer.json
文件的 "require" 部分
"gregwar/image-bundle": "dev-master"
您也可以选择版本号(标签、提交...)
并更新您的依赖项
php composer.phar update
步骤 2: 配置自动加载器
如果您使用 composer,则可以跳过此步骤。
将其添加到您的 autoload.pp
中
<?php ... 'Gregwar' => __DIR__.'/../vendor/bundles',
步骤 3: 启用包
在您的 app/AppKernel.php
中注册该包
<?php ... public function registerBundles() { $bundles = array( ... new Gregwar\ImageBundle\GregwarImageBundle(), ... ); ...
步骤 4: 配置包并设置目录
将以下配置添加到您的 app/config/config.yml
中
gregwar_image: ~
如果您想自定义缓存目录名称,可以指定它
gregwar_image:
cache_dir: my_cache_dir
创建缓存目录并更改权限,以便 Web 服务器可以写入它
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 的 Image 类,并提供简单但强大的 Twig 扩展。例如,您可以这样使用它
<img src="{{ image('linux.jpg').resize(100,100).negate }}" />
这就是全部!如果缓存文件尚不存在,辅助器将自动创建它。
可用方法与 Gregwar 的 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%') }}" />
使用图像 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 在 Web 服务器上安装 GD 和 exif 扩展
许可证
此包受 MIT 许可证