Фильтры изображений
Фильтры изображений в Intervention Image дают полезную возможность сгруппировать команды преобразования изображения в выделенный объект. Этот объект определяет, какую команду в каком порядке и с какими аргументами следует вызывать для экземпляра изображения.
Создав собственные фильтры, вы можете применять их с помощью метода filter().
Создаем фильтр, для этого в директории app
создаем директорию Helpers
а в ней файл фильтра ImageFilter.php
со следующим содиржимым:
app/Helpers/ImageFilter.php<?php
namespace App\Helpers;
use Intervention\Image\Image;
use Intervention\Image\Filters\FilterInterface;
class ImageFilter implements FilterInterface
{
public function applyFilter(Image $image)
{
return $image->resize(300, 200);
}
}
В контроллере будем вызывать метод filter()
и передавать картинку, если все сделали правильно, в браузере должны увидеть ту картинку которую передавали:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use App\Helpers\ImageFilter;
use Image;
class SiteController extends Controller
{
public function index()
{
$img = Image::make('1.jpg');
$img->filter(new ImageFilter());
return $img->response('png');
}
}
Доработка скрипта
Для более гибкой настройки скрипта будем использовать конструктор:
app/Helpers/ImageFilter.php<?php
namespace App\Helpers;
use Intervention\Image\Image;
use Intervention\Image\Filters\FilterInterface;
class ImageFilter implements FilterInterface
{
private $height;
private $width;
public function __construct($heights = 100, $widths = 100)
{
$this->height = $heights;
$this->width = $widths;
}
public function applyFilter(Image $image)
{
return $image->resize($this->height, $this->width);
}
}
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use App\Helpers\ImageFilter;
use Image;
class SiteController extends Controller
{
public function index()
{
$img = Image::make('1.jpg');
$img->filter(new ImageFilter(300, 300));
return $img->response('png');
}
}