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

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

Вывод изображения

3.x 7 мар 2026 г.

#Кодирование изображений

#Кодирование изображений с помощью объектов кодировщика

public Image::encode(EncoderInterface $encoder = new AutoEncoder()): EncodedImage

Этот метод кодирует изображение с заданным объектом кодировщика. В настоящее время доступны следующие кодировщики.

  • Intervention\Image\Encoders\AutoEncoder::class
  • Intervention\Image\Encoders\JpegEncoder::class
  • Intervention\Image\Encoders\WebpEncoder::class
  • Intervention\Image\Encoders\PngEncoder::class
  • Intervention\Image\Encoders\GifEncoder::class
  • Intervention\Image\Encoders\AvifEncoder::class
  • Intervention\Image\Encoders\BmpEncoder::class
  • Intervention\Image\Encoders\TiffEncoder::class
  • Intervention\Image\Encoders\Jpeg2000Encoder::class
  • Intervention\Image\Encoders\HeicEncoder::class

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

#Параметры

Name Type Description
encoder (optional) EncoderInterface Кодировщик изображения, используемый для преобразования изображения

#Пример

use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
use Intervention\Image\Encoders\AutoEncoder;
use Intervention\Image\Encoders\WebpEncoder;
use Intervention\Image\Encoders\GifEncoder;

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

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

// Кодировать в исходный формат изображения
$encoded = $image->encode(); // Intervention\Image\EncodedImage

// Кодировать в исходный формат с заданным качеством
$encoded = $image->encode(new AutoEncoder(quality: 10)); // Intervention\Image\EncodedImage

// Кодировать JPEG в формат WebP
$encoded = $image->encode(new WebpEncoder(quality: 65)); // Intervention\Image\EncodedImage

// Результат будет в формате GIF
$encoded = $image->encode(new GifEncoder()); // Intervention\Image\EncodedImage

#Кодирование изображений по типу медиа (MIME)

public Image::encodeByMediaType(null|string|MediaType $type = null, mixed ...$options): EncodedImage

Кодирует изображение в указанный медиатип (MIME).

Если медиатип не указан, изображение будет закодировано в формате, соответствующем MIME-типу исходно прочитанного изображения.

#Параметры

Name Type Description
type (optional) null, string or MediaType Целевой медиатип (MIME), в который кодируется изображение. По умолчанию используется исходный медиатип.
options (optional) mixed Параметры опций, зависящие от формата вывода.

#Пример

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

// Создать новый экземпляр менеджера и прочитать webp изображение
$image = new ImageManager(Driver::class)
    ->read('images/example.webp');

// Закодированный результат будет таким же, как оригинал
$encoded = $image->encodeByMediaType();

// Закодированный результат будет таким же, как оригинал, но с низким качеством
$encoded = $image->encodeByMediaType(quality: 10);

// Закодированный результат будет в формате прогрессивного JPEG
$encoded = $image->encodeByMediaType('image/jpeg', progressive: true, quality: 20);

// Результат будет в формате GIF
$encoded = $image->encodeByMediaType('image/gif');

// Или использовать элемент enum MediaType
$encoded = $image->encodeByMediaType(MediaType::IMAGE_GIF);

#Кодирование изображений по файловому пути

public Image::encodeByPath(null|string $path = null, mixed ...$options): EncodedImage

Кодирует изображение в формат, определяемый расширением указанного пути к файлу. Можно добавить опциональные параметры для задания опций кодировщика. Если путь не указан, изображение будет закодировано в формат исходно прочитанного изображения.

Обратите внимание, что этот метод не записывает указанный путь, а лишь использует эту информацию для определения целевого формата.

#Параметры

Name Type Description
path (optional) null or string Путь к файлу, из которого извлекается целевой формат. По умолчанию используется исходный путь к файлу.
options (optional) mixed Параметры опций, зависящие от формата вывода.

#Пример

use Intervention\Image\ImageManager;

// image file path
$path = 'images/example.png';

// Создать новый экземпляр менеджера и прочитать по пути
$image = new ImageManager::imagick() ->read($path);

// Закодированный формат будет таким же, как оригинал
$encoded = $image->encodeByPath();

// Результирующий формат будет таким же, как оригинал, но с низким качеством
$encoded = $image->encodeByPath(quality: 10);

// Результирующий формат будет JPEG, потому что "jpg" представляет формат jpeg
$encoded = $image->encodeByPath('images/example.jpg', progressive: true, quality: 10);

// Результат будет в формате GIF
$encoded = $image->encodeByPath('images/example.gif');

#Кодирование изображений по расширению файла

public Image::encodeByExtension(null|string|FileExtension $extension = null, mixed ...$options): EncodedImage

Кодирует изображение в формат, соответствующий указанному расширению файла. Задайте качество изображения с помощью необязательного второго параметра. Если расширение не указано, изображение будет закодировано в формат исходно прочитанного изображения.

#Параметры

Name Type Description
extension (optional) null, string or FileExtension Расширение файла, определяющее целевой формат. По умолчанию используется исходное расширение файла.
options (optional) mixed Параметры опций, зависящие от формата вывода.

#Пример

use Intervention\Image\ImageManager;

// Создать новый экземпляр менеджера и прочитать изображение
$image = new ImageManager::gd() ->read('example.jpg');

// Результирующий формат будет таким же, как оригинал
$encoded = $image->encodeByExtension();

// Результирующий формат будет таким же, как оригинал, но с низким качеством
$encoded = $image->encodeByExtension(quality: 10);

// Результат будет в формате JPEG
$encoded = $image->encodeByExtension('jpg', progressive: true, quality: 10);

// Результат будет в формате PNG
$encoded = $image->encodeByExtension('png');

// Альтернативно можно использовать элемент enum FileExtension
$encoded = $image->encodeByExtension(FileExtension::PNG);

#Кодирование с помощью сокращённых методов

Для каждого формата изображения существует соответствующий сокращённый метод, который можно вызвать напрямую у объекта изображения.

#Кодирование в формат JPEG

public Image::toJpeg(int $quality = 75, bool $progressive = false, null|bool $strip = null): EncodedImage

Кодирует текущий экземпляр изображения в формате JPEG с заданным качеством, от 0 (низкое) до 100 (лучшее).

#Параметры

Имя Тип Описание
quality (необязательно) integer Качество кодирования в диапазоне от 0 до 100. По умолчанию — 75.
progressive (необязательно) boolean Включает кодирование изображения в прогрессивном формате Jpeg. По умолчанию отключено.
strip bool (необязательно) Определяет, должны ли метаданные изображения удаляться в процессе кодирования. По умолчанию используется значение из Конфигурация драйвера.

#Пример

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

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

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

// Кодировать данные в JPEG
$encoded = $image->toJpeg(90); // Intervention\Image\EncodedImage

#Кодирование в формат WebP

public Image::toWebp(int $quality = 75, null|bool $strip = null): EncodedImage

Кодирует текущий экземпляр изображения в графическом формате WebP с заданным качеством, от 0 (низкое) до 100 (лучшее).

#Параметры

Имя Тип Описание
quality (необязательно) integer Качество кодирования. По умолчанию — 75.
strip bool (необязательно) Определяет, должны ли метаданные изображения удаляться в процессе кодирования. По умолчанию используется значение из Конфигурация драйвера.

#Пример

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

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

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

// Кодировать данные в WebP
$encoded = $image->toWebp(60); // Intervention\Image\EncodedImage

#Кодирование в формат PNG

public Image::toPng(bool $interlaced = false, bool $indexed = false): EncodedImage

Этот метод кодирует текущий экземпляр изображения в формате PNG. Дополнительные параметры формата можно задать через параметры метода. Можно включить режим interlaced, при котором изображение может отрисовываться постепенно; по умолчанию используется последовательная (неинтерлейсированная) запись.

Второй параметр indexed определяет, будет ли изображение сохранено с индексированной (ограниченной) палитрой цветов. При этом цвета автоматически уменьшаются, что даёт меньший размер файла, но может привести к потере качества цветопередачи. По умолчанию кодировщик всегда выводит truecolor-формат.

Обратите внимание, что драйвер GD для вывода PNG с индексированной палитрой поддерживает только бинарную прозрачность. Это означает, что цвета могут быть либо полностью прозрачными, либо полностью непрозрачными. Полупрозрачность невозможна с использованием GD.

Name Type Description
interlaced (optional) bool Опция кодирования изображения в интерлейсированном виде. По умолчанию отключена.
indexed (optional) bool Опция кодирования PNG с индексированной палитрой цветов. По умолчанию используется truecolor (не индексированный) режим.
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

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

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

// Кодировать как PNG truecolor
$encoded = $image->toPng(); // Intervention\Image\EncodedImage

// Кодировать в PNG с индексированной цветовой палитрой
$encoded = $image->toPng(indexed: true); // Intervention\Image\EncodedImage

#Кодирование в формат GIF

public Image::toGif(bool $interlaced = false): EncodedImage

Кодирует текущий экземпляр изображения в формате GIF.

Внимание: сигнатура изменилась в версии 3.1 — удалён параметр color_limit

Name Type Description
interlaced (optional) bool Опция кодирования изображения в интерлейсированном виде. По умолчанию отключена.
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;

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

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

// Кодировать данные в GIF
$encoded = $image->toGif(); // Intervention\Image\EncodedImage

#Кодирование в формат Windows Bitmap

public Image::toBitmap(): EncodedImage

Кодирует текущий экземпляр изображения в формате Windows Bitmap.

Внимание: сигнатура изменилась в версии 3.1 — удалён параметр color_limit

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

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

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

// Кодировать данные в BMP
$encoded = $image->toBmp(); // Intervention\Image\EncodedImage

#Кодирование в формат AV1 Image File Format (AVIF)

public Image::toAvif(int $quality = 75): EncodedImage

Кодирует текущий экземпляр изображения в формате AVIF с заданным качеством, от 0 (низкое) до 100 (лучшее).

Имя Тип Описание
quality (необязательно) integer Качество кодирования. По умолчанию — 75.
strip bool (необязательно) Определяет, должны ли метаданные изображения удаляться в процессе кодирования. По умолчанию используется значение из Конфигурация драйвера.
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

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

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

// Кодировать в формат AVIF
$encoded = $image->toAvif(60); // Intervention\Image\EncodedImage

#Кодирование в формат TIFF

public Image::toTiff(int $quality = 75): EncodedImage

Кодирует текущий экземпляр изображения в формате TIFF с заданным качеством, от 0 (низкое) до 100 (лучшее).

Имя Тип Описание
quality (необязательно) integer Качество кодирования. По умолчанию — 75.
strip bool (необязательно) Определяет, должны ли метаданные изображения удаляться в процессе кодирования. По умолчанию используется значение из Конфигурация драйвера.
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;

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

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

// Кодировать в формат TIFF
$encoded = $image->toTiff(60); // Intervention\Image\EncodedImage

#Кодирование в формат JPEG 2000

public Image::toJpeg2000(int $quality = 75): EncodedImage

Кодирует текущий экземпляр изображения в формате JPEG 2000 с заданным качеством, от 0 (низкое) до 100 (лучшее).

Имя Тип Описание
quality (необязательно) integer Качество кодирования. По умолчанию — 75.
strip bool (необязательно) Определяет, должны ли метаданные изображения удаляться в процессе кодирования. По умолчанию используется значение из Конфигурация драйвера.
use Intervention\Image\ImageManager;

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

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

// Кодировать в формат JPEG 2000
$encoded = $image->toJpeg2000(90); // Intervention\Image\EncodedImage

#Кодирование в формат Heic

public Image::toHeic(int $quality = 75): EncodedImage

Кодирует текущий экземпляр изображения в формате HEIC с заданным качеством, от 0 (низкое) до 100 (лучшее).

Имя Тип Описание
quality (необязательно) integer Качество кодирования. По умолчанию — 75.
strip bool (необязательно) Определяет, должны ли метаданные изображения удаляться в процессе кодирования. По умолчанию используется значение из Конфигурация драйвера.
use Intervention\Image\ImageManager;

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

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

// Кодировать в формат HEIC
$encoded = $image->toHeic(60); // Intervention\Image\EncodedImage

#Работа с закодированными данными изображения

Указанные методы кодирования возвращают объект Intervention\Image\EncodedImage. С помощью этого экземпляра вы можете решить, как дальше работать с закодированными данными.

#Приведение закодированных данных изображения к строке

public EncodedImage::__toString(): string

Этот метод позволяет получить сырые данные изображения в виде строки. Это особенно полезно, если данные нужно дальше обрабатывать другими библиотеками или передавать в удалённое хранилище (например, S3).

#Пример

use Intervention\Image\ImageManager;
use Just\An\Example\CloudStorage;

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

// Изменить размер GIF изображения
$image = $manager
    ->read('images/example.gif')
    ->scale(height: 200);

// Кодировать в формат JPEG и привести результат к строке
$imagedata = (string) $image->toJpeg();

// Сохранить в воображаемый сервис хранения данных
CloudStorage::put('example.jpg', $imagedata);

#Сохранение закодированных данных изображения в файловой системе

public EncodedImage::save(string $filepath, mixed ...$options): void

Этот метод записывает данные объекта по указанному пути в локальной файловой системе. Соответствующая структура папок должна уже существовать и быть доступной для записи.

#Параметры

Name Type Description
filepath string Путь к файлу в файловой системе.
options (optional) mixed Параметры опций, зависящие от формата вывода.

#Пример

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

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

// Чтение GIF изображения
$image = $manager->read('images/example.gif');

// Сохранить прогрессивный JPEG файл с низким качеством
$encoded = $image->toJpeg()->save('images/test.jpg', progressive: true, quality: 10);

#Создание Data URI

public EncodedImage::toDataUri(): string

Этот метод берёт уже закодированные данные изображения и упаковывает их в data URI схему, закодированную в base64.

#Пример

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

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

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

// Кодировать в data URI для GIF
$data_uri = $image->toGif()->toDataUri();

#Преобразование закодированного изображения в файловый указатель

public EncodedImage::toFilePointer(): resource

Создаёт ресурс файлового указателя для работы с закодированными данными изображения.

#Пример

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

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

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

// Создать файловый указатель
$pointer = $image->toJpeg()->toFilePointer();

#Получение медиатипа (MIME) закодированного изображения

public EncodedImage::mediaType(): string

Этот метод возвращает медиатип (MIME) закодированного изображения.

#Пример

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

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

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

// "image/jpeg"
$mimetype = $image->toJpeg()->mediaType();

#Прямая запись изображений

#Комбинированное кодирование и сохранение

public Image::save(null|string $path = null, mixed ...$options): ImageInterface

Этот метод позволяет начать процесс сохранения напрямую из объекта изображения без промежуточного использования объекта EncodedImage — он кодирует и записывает данные изображения в одном вызове.

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

Закодированное изображение сохраняется по указанному пути в локальной файловой системе. Соответствующая структура папок должна уже существовать и быть доступной для записи.

В отличие от других методов кодирования, save() возвращает объект Image, а не объект EncodedImage.

#Параметры

Name Type Description
path (optional) null or string Путь к файлу, из которого извлекается целевой формат. По умолчанию используется исходный путь.
options (optional) mixed Параметры опций, зависящие от формата вывода.

#Пример

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

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

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

// Перезаписать файл "images/example.jpg" с низким качеством
$image->save(quality: 10);

// Кодировать JPEG как PNG и сохранить в новый файл
$image->save('images/example.png');

// Кодировать и сохранить прогрессивный JPEG с низким качеством
$image->save('images/example.jpg', quality: 10, progressive: true);