Полный цикл в digital

Фильтры изображений

Фильтры изображений в 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');
    }
}
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг