crd2i / image-bundle
Symfony2 图片缩放组件。
v1.0.1
2013-08-23 05:30 UTC
Requires
- php: >=5.3.2
- ext-gd: *
- symfony/framework-bundle: >=2.0.0
Suggests
- ext-exif: to speed up some functions instead of using GD library
This package is not auto-updated.
Last update: 2024-09-19 21:15:51 UTC
README
此组件提供了一种简单的方法在 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 http://getcomposer.org/composer.phar
# or
curl -O http://getcomposer.org/composer.phar
php composer.phar install
步骤 2: 启用组件
最后,在 kernel 中启用该组件
<?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); ...