paradigmate / 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: 2015-12-09 08:35:20 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 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); ...