paradigmate / image-bundle
Symfony2 bundle for image resizing.
Installs: 1 341
Dependents: 0
Suggesters: 0
Security: 0
Watchers: 2
Forks: 1
Open Issues: 0
Type:symfony-bundle
pkg:composer/paradigmate/image-bundle
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
This bundle provides an easy way to resize images in Symfony2. This bundle it's based on the resize.php class by Jarrod Oberto. Requires php >=5.3, GD library and optional EXIF library.
<?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
);
}
}
Installation
Step 1: Install vendors
Symfony 2.0.x:bin/vendors.php method
If you're using the bin/vendors.php method to manage your vendor libraries,
add the following entries to the deps in the root of your project file:
[ParadigmateImageBundle]
git=http://github.com/paradigmate/ImageBundle.git
target=/bundles/Paradigma/Bundle/ImageBundle
Next, update your vendors by running:
$ ./bin/vendors
Finally, add the following entries to your autoloader:
<?php
// app/autoload.php
$loader->registerNamespaces(array(
// ...
'Paradigma' => __DIR__.'/../vendor/bundles',
));
Symfony 2.1.x: Composer
Composer is a project dependency manager for PHP. You have to list
your dependencies in a composer.json file:
{
"require": {
"paradigmate/image-bundle": "dev-master"
}
}
To actually install ImageBundle in your project, download the composer binary and run it:
wget http://getcomposer.org/composer.phar # or curl -O http://getcomposer.org/composer.phar php composer.phar install
Step 2: Enable the bundle
Finally, enable the bundle in the kernel:
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Paradigma\Bundle\ImageBundle\ParadigmaImageBundle(),
);
}
Examples
It's possible to resize the images automatically, with corpping or priorizing the size in landscape or portrait.
<?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);
...