Идёт обновление сайта. Несколько дней возможны сбои в оформлении и переводах. Документация работает — если страница выглядит сломанной, обновите её позже.

Документация
L Laravel L intervention/image
Войти
Главная image 3.x Рисование

Рисование

3.x 7 мар 2026 г.

#Цвета и пиксели

#Заполнение изображений цветом

public Image::fill(mixed $color, null|int $x = null, null|int $y = null): ImageInterface

Заполняет текущее изображение указанным цветом. При желании можно передать позицию, с которой должна начаться заливка. Если заданы значения X и Y, цвет будет применён с помощью flood fill (алгоритма заливки). Это означает, что будут заполнены только те области, которые расположены в указанной позиции. Если позиция не передаётся, будет заполнено всё изображение.

#Параметры

Имя Тип Описание
color mixed Цвет заливки в одном из различных форматов цветов
x int Необязательная координата x позиции, с которой начинается заливка
y int Необязательная координата y позиции, с которой начинается заливка

#Пример

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

// создать новый экземпляр менеджера с нужным драйвером
$manager = new ImageManager(Driver::class);

// прочитать изображение
$image = $manager->read('images/example.png');

// залить изображение цветом
$image = $image->fill('#b53717', 10, 10);

#Рисование пикселей

public Image::drawPixel(int $x, int $y, mixed $color): ImageInterface

Рисует одиночный пиксель в указанной позиции, заданной координатами x и y, в заданном цвете.

#Параметры

Имя Тип Описание
x integer Позиция пикселя по оси x в текущем изображении
y integer Позиция пикселя по оси y в текущем изображении
color mixed Цвет пикселя в допустимом формате

#Пример

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

// создать тестовое изображение из файла
$manager = new ImageManager(new Driver());
$image = $manager->read('test.png');

// нарисовать три пикселя в разных позициях
$image->drawPixel(12, 30, 'ff00ff');
$image->drawPixel(100, 1, 'rgb(255, 255, 0)');
$image->drawPixel(200, 2, 'orange');

#Геометрические фигуры

#Рисование прямоугольника

public Image::drawRectangle(int $x, int $y, Closure|Rectangle $init): ImageInterface

Рисует цветной прямоугольник на текущем изображении с верхним левым углом в координатах x, y. Определите внешний вид фигуры, передав в качестве третьего параметра callback init или объект Rectangle.

#Параметры

Имя Тип Описание
x integer Позиция верхнего левого угла прямоугольника по оси x в текущем изображении
y integer Позиция верхнего левого угла прямоугольника по оси y в текущем изображении
init Closure or Intervention\Image\Geometry\Rectangle Callback для определения внешнего вида прямоугольника или объект Rectangle. См. пример.

#Пример

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Geometry\Factories\RectangleFactory;

// создать тестовое изображение из файла
$manager = new ImageManager(new Driver());
$image = $manager->read('test.png');

// нарисовать оранжевый прямоугольник с рамкой
$image->drawRectangle(10, 10, function (RectangleFactory $rectangle) {
    $rectangle->size(180, 125); // ширина и высота прямоугольника
    $rectangle->background('orange'); // цвет фона прямоугольника
    $rectangle->border('white', 2); // цвет и толщина границы прямоугольника
});

#Рисование эллипсов

public Image::drawEllipse(int $x, int $y, Closure|Ellipse $init): ImageInterface

Рисует цветной эллипс на текущем изображении с центром в координатах x, y. Определите внешний вид фигуры, передав в качестве третьего параметра callback init или объект Ellipse.

#Параметры

Имя Тип Описание
x integer Позиция центра эллипса по оси x в текущем изображении
y integer Позиция центра эллипса по оси y в текущем изображении
init Closure or Intervention\Image\Geometry\Ellipse Callback для определения внешнего вида эллипса или объект Ellipse. См. пример.

#Пример

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Geometry\Factories\EllipseFactory;

// создать тестовое изображение из файла
$manager = new ImageManager(Driver::class);
$image = $manager->read('test.png');

// нарисовать красный эллипс с синей рамкой
$image->drawEllipse(10, 10, function (EllipseFactory $ellipse) {
    $ellipse->size(180, 125); // ширина и высота эллипса
    $ellipse->background('f00'); // цвет фона
    $ellipse->border('00f', 1); // цвет и толщина рамки
});

#Рисование круга

public Image::drawCircle(int $x, int $y, Closure|Circle $init): ImageInterface

Рисует цветной круг на текущем изображении с центром в координатах x, y. Определите внешний вид фигуры, передав в качестве третьего параметра callback init или объект Circle.

#Параметры

Имя Тип Описание
x integer Позиция центра круга по оси x в текущем изображении
y integer Позиция центра круга по оси y в текущем изображении
init Closure or Intervention\Image\Geometry\Circle Callback для определения внешнего вида круга или объекта Circle. См. пример.

#Пример

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Geometry\Factories\CircleFactory;

// создать тестовое изображение из файла
$manager = new ImageManager(Driver::class);
$image = $manager->read('test.png');

// нарисовать зелёный круг с белой рамкой
$image->drawCircle(10, 10, function (CircleFactory $circle) {
    $circle->radius(150); // радиус круга в пикселях
    $circle->background('lightblue'); // цвет фона
    $circle->border('b53717', 1); // цвет и толщина рамки
});

#Рисование линии

public Image::drawLine(Closure|Line $init): ImageInterface

Рисует линию на текущем изображении. Определите внешний вид фигуры, передав callback init или объект Line.

#Параметры

Имя Тип Описание
init Closure or Intervention\Image\Geometry\Line Callback для определения внешнего вида линии или объект Line. См. пример.

#Пример

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Geometry\Factories\LineFactory;

// создать тестовое изображение из файла
$manager = new ImageManager(Driver::class);
$image = $manager->read('test.png');

// нарисовать полупрозрачную белую линию
$image->drawLine(function (LineFactory $line) {
    $line->from(10, 10); // начальная точка линии
    $line->to(300, 100); // конечная точка
    $line->color('ff00ff'); // цвет линии
    $line->width(5); // ширина линии в пикселях
});

#Рисование многоугольника

public Image::drawPolygon(Closure|Polygon $init): ImageInterface

Рисует многоугольник на текущем изображении. Определите внешний вид фигуры, передав callback init или объект Polygon.

#Параметры

Имя Тип Описание
init Closure or Intervention\Image\Geometry\Polygon Callback для определения внешнего вида многоугольника или объект Polygon. См. пример.

#Пример

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Geometry\Factories\PolygonFactory;

// создать тестовое изображение из файла
$manager = new ImageManager(new Driver());
$image = $manager->read('test.png');

// нарисовать полигон
$image->drawPolygon(function (PolygonFactory $polygon) {
    $polygon->point(10, 10); // добавить точку полигона
    $polygon->point(150, 150); // добавить точку
    $polygon->point(40, 180); // добавить точку
    $polygon->point(60, 100); // добавить точку
    $polygon->background('#b35187'); // цвет фона
    $polygon->border('#ff0', 6); // цвет границы и ширина границы
});

#Рисование кривых Безье

public Image::drawBezier(Closure|Bezier $init): ImageInterface

Этот метод рисует кривые Безье, форма которых задаётся набором контрольных точек, указанных в callback. Тип рисуемой кривой зависит от числа указанных контрольных точек, которых должно быть либо три, либо четыре. При трёх контрольных точках получается квадратичная кривая Безье, а при четырёх — кубическая кривая Безье. Первая и последняя контрольные точки определяют начало и конец кривой.

Цвет, ширину и фон кривой также можно задать с помощью callback.

#Параметры

Имя Тип Описание
init Closure or Intervention\Image\Geometry\Bezier Callback для определения внешнего вида и положения кривой Безье или объекта Bezier. См. пример.

#Пример

use Intervention\Image\ImageManager;
use Intervention\Image\Geometry\Factories\BezierFactory;

// create a new image
$image = ImageManager::gd()
    ->create(500, 500)
    ->fill('666');

// draw a yellow quadratic bezier curve with a filled red background
$image->drawBezier(function (BezierFactory $bezier) {
    $bezier->point(300, 260); // контрольная точка 1
    $bezier->point(150, 335); // контрольная точка 2
    $bezier->point(300, 410); // контрольная точка 3
    $bezier->background('f00'); // цвет фона
    $bezier->border('ff0'); // цвет границы
});

// draw a 4px red cubic bezier curve with four control points
$image->drawBezier(function (BezierFactory $bezier) {
    $bezier->point(50, 50); // контрольная точка 1
    $bezier->point(200, 50); // контрольная точка 2
    $bezier->point(150, 200); // контрольная точка 3
    $bezier->point(300, 200); // контрольная точка 4
    $bezier->border('ff0000', 4); // цвет и толщина границы
});