paradigmate/image-bundle

此包已被弃用且不再维护。未建议替代包。

Symfony2 的图像缩放组件。

v1.0.1 2013-08-23 05:30 UTC

This package is not auto-updated.

Last update: 2015-12-09 08:35:20 UTC


README

Build Status

此组件提供了一种在 Symfony2 中轻松缩放图像的方法。此组件基于 Jarrod Oberto 的 resize.php 类。需要 php >=5.3,GD 库和可选的 EXIF 库。

<?php

class ImageController extends Controller
{
    public function userAction($user, $size) {
        $resize = $this->get('image_resizer')
            ->resize(
                $user->getImageFile(), 
                $user->getImageFile($size), 
                new ImageSize($size, $size), 
                ImageResizer::RESIZE_TYPE_CROP
            );
    }
}

安装

步骤 1: 安装供应商

Symfony 2.0.x: bin/vendors.php 方法

如果您使用 bin/vendors.php 方法来管理您的供应商库,请将以下条目添加到项目根目录下的 deps

[ParadigmateImageBundle]
    git=http://github.com/paradigmate/ImageBundle.git
    target=/bundles/Paradigma/Bundle/ImageBundle

接下来,通过运行以下命令更新您的供应商:

$ ./bin/vendors

最后,将以下条目添加到您的自动加载器中:

<?php
// app/autoload.php

$loader->registerNamespaces(array(
    // ...
    'Paradigma'        => __DIR__.'/../vendor/bundles',
));
Symfony 2.1.x: Composer

Composer 是一个 PHP 项目依赖管理器。您必须在 composer.json 文件中列出您的依赖项。

{
    "require": {
        "paradigmate/image-bundle": "dev-master"
    }
}

要实际在项目中安装 ImageBundle,请下载 composer 二进制文件并运行它

wget https://getcomposer.org.cn/composer.phar
# or
curl -O https://getcomposer.org.cn/composer.phar

php composer.phar install

步骤 2: 启用组件

最后,在内核中启用该组件

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...

        new Paradigma\Bundle\ImageBundle\ParadigmaImageBundle(),
    );
}

示例

可以自动缩放图像,支持裁剪或优先考虑风景或肖像的大小。

<?php
...
$resize = $this->get('image_resizer')
    ->resize($filename, $filename_output, new ImageSize($size, $size), ImageResizer::RESIZE_TYPE_AUTO);
....
$resize = $this->get('image_resizer')
    ->resize($filename, $filename_output, new ImageSize($size, $size), ImageResizer::RESIZE_TYPE_CROP);
...
$resize = $this->get('image_resizer')
    ->resize($filename, $filename_output, new ImageSize($size, $size), ImageResizer::RESIZE_TYPE_EXACT);
...
$resize = $this->get('image_resizer')
    ->resize($filename, $filename_output, new ImageSize($size, $size), ImageResizer::RESIZE_TYPE_LANDSCAPE);
...
$resize = $this->get('image_resizer')
    ->resize($filename, $filename_output, new ImageSize($size, $size), ImageResizer::RESIZE_TYPE_PORTRAIT);
...