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

Документация
L Laravel L intervention/image
Войти
Главная image 3.x Поддерживаемые форматы

Поддерживаемые форматы

3.x 7 мар 2026 г.

#Форматы изображений

Поддерживаемые форматы изображений зависят от используемого драйвера. С Imagick и libvips можно читать все форматы, которые поддерживает сама библиотека, и записывать форматы, перечисленные ниже. С GD читаемыми и записываемыми являются только форматы, указанные ниже.

Подробнее о кодировании различных форматов изображений читайте в разделе вывода.

Формат GD Imagick libvips
JPEG
GIF
Анимированный GIF
PNG
AVIF
Bitmap
WebP
Анимированный WebP
TIFF
JPEG 2000
HEIC

Обратите внимание, что не все форматы изображений всегда включены в расширения PHP для работы с изображениями. Поэтому возможно, что библиотека GD установлена, но собрана без поддержки Jpeg, или, например, Imagick доступна без поддержки Webp.

Все эти форматы изображений можно читать из разных источников. В частности:

  • Путь в файловой системе
  • Сырые бинарные данные изображения
  • Данные изображения, закодированные в Base64
  • Data Uri Scheme
  • Ресурс указателя на файл
  • SplFileInfo, от которого наследуются Illuminate\Http\UploadedFile и Symfony\Component\HttpFoundation\File\UploadedFile
  • Экземпляр Intervention Image (Intervention\Image\Image)
  • Закодированное изображение Intervention Image (Intervention\Image\EncodedImage)
  • Драйвер-специфичное изображение (экземпляр GDImage или Imagick)

#Проверка поддержки форматов изображений

public DriverInterface::supports(string|Format|FileExtension|MediaType $identifier): bool

Этот метод можно использовать во время выполнения, чтобы узнать, поддерживается ли конкретный формат. Он проверяет, поддерживается ли требуемый формат текущим драйвером и собрана ли соответствующая расширяющая библиотека с необходимой поддержкой, возвращая true, если выполняются оба условия.

#Параметры

Name Type Description
identifier string, Format, FileExtension or MediaType Идентификатор формата изображения, который можно передать либо как строку расширения файла, либо как строку media type, либо как член перечисления.

#Пример

use Intervention\Image\Drivers\Imagick\Driver as ImagickDriver
use Intervention\Image\Format;
use Intervention\Image\MediaType;
use Intervention\Image\FileExtension;

$manager = ImageManager::withDriver(ImagickDriver::class);

// check by file extension if driver supports jpeg format
$result = $manager->driver()->supports('jpg');

// check by media type if driver supports jpeg format
$result = $manager->driver()->supports('image/jpeg');

// check by enum member if driver supports jpeg format
$result = $manager->driver()->supports(Format::JPEG);

// check by enum member if driver supports jpeg format
$result = $manager->driver()->supports(MediaType::IMAGE_JPEG);

// check by enum member if driver supports jpeg format
$result = $manager->driver()->supports(FileExtension::JPG);

#Цветовые форматы

Библиотека поддерживает несколько форматов для задания цветов в своих методах.

Входные значения для цветов могут отличаться от фактического цветового пространства изображения. Поэтому возможно рисовать на CMYK-изображении, задавая цвет в HSV. Цвета автоматически конвертируются в целевое цветовое пространство.

#Строковый формат

#Шестнадцатеричный строковый формат

Вы можете передавать цвета как RGB hex-триплеты, которые обычно используются в HTML и CSS. Можно использовать как сокращённый, так и полный формат, с альфа-каналом или без него. Лидирующий # необязателен.

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

// Создать новое изображение с красным фоном
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('b53717');

// Создать новое изображение с полупрозрачным красным фоном
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('b5371766');

#RGB строковый формат

Строковые значения RGB в функциональной нотации также поддерживаются. Чтобы включить значение альфа, используйте префикс RGBA, как показано в примере.

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

// Создать новое изображение с полупрозрачным фоном
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('rgba(15, 20, 255, .5)');

// Создать новое изображение с красным фоном
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('rgb(255, 0, 0)');

#CMYK строковый формат

Строковые значения CMYK в функциональной нотации также поддерживаются.

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

// Создать новое изображение с фоном
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('cmyk(100, 100, 55, 60)');

#HSV/HSB строковый формат

Также можно передавать строковые значения цвета в альтернативном RGB формате — HSV/HSB.

use Intervention\Image\ImageManager;

// Создать новое изображение с полупрозрачным фоном
$image = ImageManager::imagick()->read('example.jpg');

// Нарисовать цветной пиксель
$image->drawPixel(120, 200, 'hsv(230, 15, 75)');

#HSL строковый формат

Также возможно передавать строковые значения цвета в формате HSL.

use Intervention\Image\ImageManager;

// Создать новое изображение с полупрозрачным фоном
$image = ImageManager::imagick()->read('example.jpg');

// Залить изображение цветом
$image->fill(120, 200, 'hsl(100, 15, 10)');

#Имена цветов HTML

Intervention Image может распознавать цвета из расширенного набора из 140 HTML-имен цветов спецификации W3C.

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

// Создать новое изображение с полупрозрачным фоном
$image = (new ImageManager(Driver::class))->create(300, 200)->fill('steelblue');

#Прозрачность

Если необходимо указать прозрачность как цвет, это всегда можно сделать с помощью ключевого слова transparent.

use Intervention\Image\ImageManager;

$manager = ImageManager::gd();
$image = $manager->read('images/example.png');
$image->pad(300, 200, 'transparent');

#Объекты цвета

Цвета также можно задавать в виде объектов. В настоящее время для каждого цветового пространства предусмотрён свой класс цвета.

#RGB объект цвета

RGB-объект цвета использует три параметра для базовых каналов, а также необязательный параметр альфа-канала, который по умолчанию считается полностью непрозрачным.

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Colors\Rgb\Color;

// Создать новое изображение с полупрозрачным фоном
$image = (new ImageManager(Driver::class))->create(300, 200)->fill(new Color(45, 0, 10, .5));

// Создать новое изображение с красным фоном
$image = (new ImageManager(Driver::class))->create(300, 200)->fill(new Color(255, 0, 0));

#CMYK объект цвета

CMYK-объект цвета конструируется с использованием четырёх параметров, соответствующих четырём каналам цветового пространства.

use Intervention\Image\ImageManager;
use Intervention\Image\Colors\Cmyk\Color;

// Создать новое изображение с полупрозрачным фоном
$image = ImageManager::imagick()->create(300, 200)->fill(new Color(100, 100, 55, 60));

#HSV/HSB объект цвета

Конструктор HSV/HSB-объекта цвета принимает три параметра: Hue, Saturation и Value/Brightness.

use Intervention\Image\ImageManager;
use Intervention\Image\Colors\Hsv\Color;

// Создать новое изображение с полупрозрачным фоном
$image = ImageManager::imagick()->create(300, 200)->fill(new Color(230, 15, 75));

#HSL объект цвета

Конструктор HSL-объекта цвета принимает три параметра: Hue, Saturation и Luminance.

use Intervention\Image\ImageManager;
use Intervention\Image\Colors\Hsl\Color;

// Создать новое изображение с полупрозрачным фоном
$image = ImageManager::imagick()->create(300, 200)->fill(new Color(230, 15, 75));

#Цветовые пространства

Доступные цветовые пространства в первую очередь определяются используемым драйвером. Драйвер Imagick поддерживает как RGB, так и CMYK, тогда как драйвер GD поддерживает только RGB. Цветовое пространство по умолчанию для вновь создаваемых изображений — RGB.

При использовании драйвера GD в Intervention Image чтение CMYK-изображений автоматически конвертирует их в RGB, что может привести к отклонениям в цветопередаче.

Поскольку драйвер GD не поддерживает CMYK, его не рекомендуется использовать с CMYK-изображениями.

Читайте о том, как читать и изменять цветовое пространство в разделе Meta Information.

#Конвертация цветов в другие цветовые пространства или форматы

Цвета всегда можно конвертировать в поддерживаемые цветовые пространства. Это возможно даже если драйвер не поддерживает требуемое цветовое пространство.

Объекты цвета также можно конвертировать в следующие форматы.

  • Intervention\Image\Colors\Rgb\Colorspace
  • Intervention\Image\Colors\Cmyk\Colorspace
  • Intervention\Image\Colors\Hsv\Colorspace
  • Intervention\Image\Colors\Hsl\Colorspace
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;
use Intervention\Image\Colors\Hsv\Colorspace as HsvColorspace;

// read RGB image from filesystem
$manager = new ImageManager(new Driver());
$image = $manager->read('example.jpg');

// retrieve color of pixel at given position
$color = $image->pickColor(100, 100);

// convert color to HSV format
$color = (string) $color->convertTo(HsvColorspace::class); // 'hsv(220, 10, 65)'