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
);
}
}
bin/vendors.php methodIf 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',
));
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
Finally, enable the bundle in the kernel:
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Paradigma\Bundle\ImageBundle\ParadigmaImageBundle(),
);
}
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);
...
How can I help you explore Laravel packages today?