句子/图像包

图像处理包

安装: 35

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 50

类型:symfony-bundle

v2.3.0 2018-03-27 13:53 UTC

README

paypal

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 服务器上安装 GDexif 扩展

许可证

此包受 MIT 许可证