PHPackages                             platinajewelry/image - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. platinajewelry/image

ActiveLibrary[Image &amp; Media](/categories/media)

platinajewelry/image
====================

:Обработка изображений laravel

1.1.5(2y ago)066MITPHP

Since Jan 31Pushed 2y ago1 watchersCompare

[ Source](https://github.com/platina-jewelry/image)[ Packagist](https://packagist.org/packages/platinajewelry/image)[ Docs](https://github.com/platinajewelry/image)[ RSS](/packages/platinajewelry-image/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)DependenciesVersions (8)Used By (0)

Пакет image
-----------

[](#пакет-image)

### Лицензия

[](#лицензия)

Этот проект лицензирован в соответствии с MIT License.

### Requirements (Требования):

[](#requirements-требования)

- **PHP &gt;= 8.1**
- **phpunit/phpunit: ~9.0**
- **illuminate/support: ~9**
- **orchestra/testbench: ~7**

### Supported Image Libraries (Поддерживаемые библиотеки):

[](#supported-image-libraries-поддерживаемые-библиотеки)

- **Imagick PHP extension (&gt;= 3.7.0)**

### Описание:

[](#описание)

Проект image – это современная и мощная библиотека для обработки изображений в Laravel. Она объединяет различные компоненты и интерфейсы, предоставляя гибкую архитектуру для эффективной работы с изображениями. Взаимодействие с библиотекой Imagick дает возможность проводить разнообразные манипуляции с изображениями. Этот проект обеспечивает команду разработчиков мощными инструментами для управления изображениями в Laravel, а также позволяет создавать индивидуальные решения для обработки изображений в рамках вашего проекта.

Установка
---------

[](#установка)

Используйте [Composer](https://getcomposer.org/) для установки библиотеки:

```
composer require platinajewelry/image
```

```
# Конфигурация
return [
    // Базовая директория для сохранения файлов.
    'base_path' => 'app/public',
    // Качество сохранения изображения по умолчанию.
    'default_quality' => 90,
    // Следует ли применять Str::slug к имени файла.
    'use_slug' => true,
    // Оставит только буквы, цифры, символы тире и нижнее подчеркивание.
    'filename_filter' => '/[^a-zA-ZА-я\d\-_]/u', // Если пусто, то не применяется
];
```

Функциональность:
-----------------

[](#функциональность)

- [`make()`](#make---%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D1%82-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F) - Создает объект изображения.
- [`save()`](#save---%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F) - Сохранение изображения.
- [`destroy()`](#destroy---%D0%BE%D1%87%D0%B8%D1%89%D0%B0%D0%B5%D1%82-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D1%8B-%D0%B8-%D1%83%D0%BD%D0%B8%D1%87%D1%82%D0%BE%D0%B6%D0%B0%D0%B5%D1%82-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F) - Очищает ресурсы, и уничтожает объект изображения.
- [`resize()`](#resize---%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D1%8F-%D0%BF%D1%80%D0%BE%D0%BF%D0%BE%D1%80%D1%86%D0%B8%D0%B8) - Изменяет размер изображения сохраняя пропорции.
- [`crop()`](#crop---%D0%BE%D0%B1%D1%80%D0%B5%D0%B7%D0%B0%D0%B5%D1%82-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0%D0%BC) - Обрезает изображение по заданным размерам.
- [`encode()`](#encode---%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D1%83%D0%B5%D1%82-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82) - Кодирует изображение в определенный формат.
- [`orientate()`](#orientate---%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8E-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F) - Изменяет ориентацию изображения.
- [`rotate()`](#rotate---%D0%BF%D0%BE%D0%B2%D0%BE%D1%80%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9-%D1%83%D0%B3%D0%BE%D0%BB) - Поворачивает изображение на заданный угол.
- [`mirror()`](#mirror---%D0%B7%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE-%D0%BE%D1%82%D1%80%D0%B0%D0%B6%D0%B0%D0%B5%D1%82-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE-%D0%B3%D0%BE%D1%80%D0%B8%D0%B7%D0%BE%D0%BD%D1%82%D0%B0%D0%BB%D0%B8-%D0%B8%D0%BB%D0%B8-%D0%B2%D0%B5%D1%80%D1%82%D0%B8%D0%BA%D0%B0%D0%BB%D0%B8) - Зеркально отражает изображение по горизонтали или вертикали.
- [`blur()`](#blur---%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82-%D1%80%D0%B0%D0%B7%D0%BC%D1%8B%D1%82%D0%B8%D0%B5-%D0%BA-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8E) - Применяет размытие к изображению.
- [`brightness()`](#brightness---%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D0%B8%D1%80%D1%83%D0%B5%D1%82-%D1%8F%D1%80%D0%BA%D0%BE%D1%81%D1%82%D1%8C-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F) - Регулирует яркость изображения.
- [`contrast()`](#contrast---%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D0%B8%D1%80%D1%83%D0%B5%D1%82-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D1%81%D1%82-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F) - Регулирует контраст изображения.
- [`grayscale()`](#grayscale---%D0%BF%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D1%83%D0%B5%D1%82-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2-%D1%87%D0%B5%D1%80%D0%BD%D0%BE-%D0%B1%D0%B5%D0%BB%D1%8B%D0%B9-%D0%BE%D1%82%D1%82%D0%B5%D0%BD%D0%BA%D0%B8-%D1%81%D0%B5%D1%80%D0%BE%D0%B3%D0%BE) - Преобразует изображение в черно-белый (оттенки серого).
- [`sharpen()`](#sharpen---%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82-%D1%8D%D1%84%D1%84%D0%B5%D0%BA%D1%82-%D0%B7%D0%B0%D1%82%D0%BE%D1%87%D0%BA%D0%B8-%D0%BA-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8E) - Применяет эффект заточки к изображению.
- [`textOverlay()`](#textoverlay---%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B5-%D0%BD%D0%B0%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5) - Добавляет текстовое наложение на изображение.
- [`watermark()`](#watermark---%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82-%D0%B2%D0%BE%D0%B4%D1%8F%D0%BD%D0%BE%D0%B9-%D0%B7%D0%BD%D0%B0%D0%BA-%D0%BD%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5) - Добавляет водяной знак на изображение.
- [`backup()`](#backup---%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D1%82-%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D1%83%D1%8E-%D0%BA%D0%BE%D0%BF%D0%B8%D1%8E-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F) - Создает резервную копию изображения.
- [`reset()`](#reset---%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%B0%D0%B2%D0%BB%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D0%B7-%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B9-%D0%BA%D0%BE%D0%BF%D0%B8%D0%B8) - Восстанавливает изображение из резервной копии.
- [`response()`](#response---%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D1%82-http-%D0%BE%D1%82%D0%B2%D0%B5%D1%82-%D0%BD%D0%B0-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F) - Создает HTTP-ответ на основе изображения.
- [`stream()`](#stream) - Выводит изображение в виде потока.
- [`Создание пользовательских команд`](#%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D1%85-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4) - Создайте собственную команду и обработайте изображение по своему усмотрению.

make() - Создает объект изображения.
------------------------------------

[](#make---создает-объект-изображения)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Создает объект изображения.
 *
 * @param mixed $data Данные для создания изображения (локальный файл, UploadedFile, URL-адрес).
 *
 * @return Image Возвращает объект изображения.
 */
@method make(mixed $data): Image

// Создание объекта изображения на основе локального файла.
$img = PLImage::make('C:/file.jpg');
// Создание объекта изображения на основе данных, полученных по URL-адресу.
$img = PLImage::make('https://file.jpg');
// Создание объекта изображения на основе данных, предоставленных UploadedFile.
$img = PLImage::make($request->file('file'));

/**
* Свойства объекта изображения
 */
// **MIME-тип изображения**
    - Геттер: $img->getMime()
    - Сеттер: $img->setMime($newMime)

// **Директория, в которой находится изображение**
    - Геттер: $img->getDirname()
    - Сеттер: $img->setDirname($newDirname)

// **Имя файла изображения**
    - Геттер: $img->getFilename()
    - Сеттер: $img->setFilename($newFilename)

// **Имя файла без расширения**
    - Геттер: $img->getBasename()
    - Сеттер: $img->setBasename($newBasename)

// **Расширение файла**
    - Геттер: $img->getExtension()
    - Сеттер: $img->setExtension($newExtension)

// **Путь**
    - Геттер: $img->getSavePath()
    - Сеттер: $img->setSavePath($newSavePath)
```

save() - Сохранение изображения.
--------------------------------

[](#save---сохранение-изображения)

```
use Smetaniny\LaravelImage\Facades\PLImage;

/**
 * Выполняет сохранение изображения по указанному пути и с заданным качеством.
 *
 * @param string $path Путь для сохранения изображения
 * @param int|null $quality Качество сохранения изображения
 *
 * @return Image Возвращает объект изображения.
 */
@method save(string $path = "", int $quality = null): Image

// Создание объекта изображения на основе данных, предоставленных UploadedFile.
$img = PLImage::make($request->file('file'));
// Сохранить изображение по указанному пути test/file.jpg с качеством 90.
$img->save('test/file.jpg', 90);
// Сохранить изображение по указанному пути test/file.jpg с максимальным качеством (по умолчанию 100).
$img->save('test/file.jpg');
// Сохранить изображение в соответствии с настройками конфигурации.
$img->save();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->save('file.jpg');
```

destroy() - Очищает ресурсы, и уничтожает объект изображения.
-------------------------------------------------------------

[](#destroy---очищает-ресурсы-и-уничтожает-объект-изображения)

```
/**
 * Очищает ресурсы, и уничтожает объект изображения.
 *
 * После вызова этого метода объект изображения больше не может быть использован для манипуляций.
 * Требуется создание нового объекта изображения для проведения дополнительных операций.
 */
@method destroy(): void
```

resize() - Изменяет размер изображения сохраняя пропорции.
----------------------------------------------------------

[](#resize---изменяет-размер-изображения-сохраняя-пропорции)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Изменяет размер изображения сохраняя пропорции.
 *
 * @param int|null $width Новая ширина изображения.
 * @param int|null $height Новая высота изображения.
 *
 * @return Image Возвращает объект изображения.
 */
@method resize(?int $width, ?int $height): Image

// Создание объекта изображения на основе данных, предоставленных UploadedFile.
$img = PLImage::make($request->file('file'));
// Изменение размера изображения на ширину 500 и высоту 400 пикселей.
$img->resize(500, 400);
// Изменение размера изображения по ширине на 400 пикселей, сохраняя пропорции.
$img->resize(null, 400);
// Изменение размера изображения по высоте на 500 пикселей, сохраняя пропорции.
$img->resize(500, null);
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath()
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->resize(500, null)
    ->save()
    ->destroy();
```

crop() - Обрезает изображение по заданным размерам.
---------------------------------------------------

[](#crop---обрезает-изображение-по-заданным-размерам)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Обрезает изображение по заданным размерам.
 *
 * @param int $width Ширина обрезанного изображения.
 * @param int $height Высота обрезанного изображения.
 * @param int|null $x X-координата верхнего левого угла обрезки.
 * @param int|null $y Y-координата верхнего левого угла обрезки.
 *
 * @return Image Возвращает объект изображения.
 */
@method crop(int $width, int $height, ?int $x = null, ?int $y = null): Image

// Создание объекта изображения на основе данных, предоставленных UploadedFile.
$img = PLImage::make($request->file('file'));
// Вызываем метод обрезки с указанными параметрами.
$img->crop(500, 500, 25, 50);
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath()
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->crop(500, 500, 25, 50)
    ->save()
    ->destroy();
```

encode() - Кодирует изображение в определенный формат.
------------------------------------------------------

[](#encode---кодирует-изображение-в-определенный-формат)

```
use Smetaniny\LaravelImage\Facades\PLImage;
use Imagick;

/**
 * Кодирует изображение в определенный формат.
 *
 * @param string $format Формат, в который нужно закодировать изображение.
 *
 * @return Image Возвращает объект изображения.
 */
@method encode(string $format): Image

// Получаем список форматов с которыми можем работать.
$imagickFormats = Imagick::queryFormats();

$img = PLImage::make($request->file('file'));
// Сохраняем оригинальный размер.
$img->save();

// Или более краткий вариант
PLImage::make($request->file('file'))->save();

// Кодирование в формат JPEG.
$img->encode('JPEG');
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();

// Кодирование в формат PNG.
$img->encode('PNG');
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();

// Кодирование в формат WebP.
$img->encode('WebP');
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();

// Кодирование в формат SVG.
$img->encode('SVG');
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();
```

orientate() - Изменяет ориентацию изображения.
----------------------------------------------

[](#orientate---изменяет-ориентацию-изображения)

```
use Smetaniny\LaravelImage\Facades\PLImage;

/**
 * Изменяет ориентацию изображения. Автоматически повернет изображение.
 *
 * @return Image Возвращает объект изображения.
 */
@method orientate(): Image Изменяет ориентацию изображения.
Автоматически повернет изображение так, чтобы оно было правильно отображено.

// Создаем объект изображения.
$img = PLImage::make($img);
// Изменяет ориентацию изображения
$img->orientate();
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->orientate()
    ->save()
    ->getSavePath()
    ->destroy();
```

rotate() - Поворачивает изображение на заданный угол.
-----------------------------------------------------

[](#rotate---поворачивает-изображение-на-заданный-угол)

```
use Smetaniny\LaravelImage\Facades\PLImage;

/**
 * Поворачивает изображение на заданный угол.
 *
 * @param int $angle Угол поворота в градусах.
 *
 * @return Image Возвращает объект изображения.
 */
@method rotate(int $angle): Image

// Создаем объект изображения.
$img = PLImage::make($img);
// Поворачиваем изображение.
$img->rotate(45);
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->rotate(45)
    ->save()
    ->getSavePath()
    ->destroy();
```

mirror() - Зеркально отражает изображение по горизонтали или вертикали.
-----------------------------------------------------------------------

[](#mirror---зеркально-отражает-изображение-по-горизонтали-или-вертикали)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Зеркально отражает изображение по горизонтали или вертикали.
 *
 * @param string $mode Режим отражения: 'h' для горизонтального, 'v' для вертикального.
 *
 * @return Image Возвращает объект изображения.
 */
@method mirror(string $mode = 'h'): Image

// Создаем объект изображения.
$img = PLImage::make($img);
// Зеркально отражаем изображение.
$img->mirror();
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->mirror()
    ->save()
    ->getSavePath()
    ->destroy();
```

blur() - Применяет размытие к изображению.
------------------------------------------

[](#blur---применяет-размытие-к-изображению)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Применяет размытие к изображению.
 *
 * @param float $radius Радиус размытия (чем больше, тем сильнее размытие).
 * @param float $sigma Стандартное отклонение для гауссова размытия.
 */
@method blur(float $radius = 5, float $sigma = 1): Image

// Создаем объект изображения.
$img = PLImage::make($img);
// Размываем изображение.
$img->blur();
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->blur()
    ->save()
    ->getSavePath()
    ->destroy();
```

brightness() - Регулирует яркость изображения.
----------------------------------------------

[](#brightness---регулирует-яркость-изображения)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Регулирует яркость изображения.
 *
 * @param float $brightness Уровень яркости (0 - оригинал, > 0 - увеличить, < 0 - уменьшить).
 */
@method brightness(float $brightness): Image

// Создаем объект изображения.
$img = PLImage::make($img);
// Регулируем яркость
$img->brightness(-25);
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->brightness(-25)
    ->save()
    ->getSavePath()
    ->destroy();
```

contrast() - Регулирует контраст изображения.
---------------------------------------------

[](#contrast---регулирует-контраст-изображения)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Регулирует контраст изображения.
 *
 * @param float $contrast Уровень контраста (0 - оригинал, > 0 - увеличить, < 0 - уменьшить).
 *
 * @return Image Возвращает объект изображения.
 */
@method contrast(float $contrast): Image

// Создаем объект изображения.
$img = PLImage::make($img);
// Регулируем контраст
$img->contrast(25);
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->contrast(25)
    ->save()
    ->getSavePath()
    ->destroy();
```

grayscale() - Преобразует изображение в черно-белый (оттенки серого).
---------------------------------------------------------------------

[](#grayscale---преобразует-изображение-в-черно-белый-оттенки-серого)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Преобразует изображение в черно-белый (оттенки серого).
 *
 * @return Image Возвращает объект изображения.
 */
@method grayscale(float $contrast): Image

// Создаем объект изображения.
$img = PLImage::make($img);
// Регулируем контраст
$img->grayscale();
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->grayscale()
    ->save()
    ->getSavePath()
    ->destroy();
```

sharpen() - Применяет эффект заточки к изображению.
---------------------------------------------------

[](#sharpen---применяет-эффект-заточки-к-изображению)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Применяет эффект заточки к изображению.
 *
 * @param float $amount Уровень заточки (чем больше, тем сильнее резкость).
 * @param float $radius Радиус заточки.
 * @param float $sigma Стандартное отклонение для гауссова заточки.
 *
 * @return Image Возвращает объект изображения.
 */
@method sharpen(float $amount = 2, float $radius = 1, float $sigma = 0.5): Image

// Создаем объект изображения.
$img = PLImage::make($img);
// Регулируем контраст
$img->sharpen(50, 25, 20.5);
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make(
    $request->file('file'))
    ->sharpen(50, 25, 20.5)
    ->save()
    ->getSavePath()
    ->destroy();
```

textoverlay() - Добавляет текстовое наложение на изображение.
-------------------------------------------------------------

[](#textoverlay---добавляет-текстовое-наложение-на-изображение)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Добавляет текстовое наложение на изображение.
 *
 * @param string $text Текст для наложения.
 * @param int $x Положение по оси X.
 * @param int $y Положение по оси Y.
 * @param string $font Путь к файлу шрифта.
 * @param int $fontSize Размер шрифта.
 * @param string $color Цвет текста в формате "#RRGGBB".
 *
 * @return Image Возвращает объект изображения.
 */
@method textOverlay(
    string $text,
    int $x,
    int $y,
    string $font,
    int $fontSize,
    string $color = '#000000'
): Image

// Создаем объект изображения.
$img = PLImage::make($img);
$text = 'Пример текста';
$text2 = 'Пример текста 2';
// Путь до шрифта
$font = public_path('/ArialRegular.ttf');
// Устанавливаем текст
$img->textOverlay($text, 300, 300, $font, 44, '#FF0000');
// Устанавливаем текст 2
$img->textOverlay($text2, 300, 350, $font, 44, '#FF0000');
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->textOverlay($text, 300, 300, $font, 44, '#FF0000')
    ->textOverlay($text2, 300, 350, $font, 44, '#FF0000')
    ->save()
    ->getSavePath()
    ->destroy();
```

watermark() - Добавляет водяной знак на изображение.
----------------------------------------------------

[](#watermark---добавляет-водяной-знак-на-изображение)

```
use Smetaniny\LaravelImage\Facades\PLImage;

/**
 * Добавляет водяной знак на изображение.
 *
 * @param string $watermarkPath Путь к файлу изображения водяного знака.
 * @param int $x Положение по оси X.
 * @param int $y Положение по оси Y.
 * @param int $opacity Прозрачность водяного знака (от 0 до 100).
 *
 * @return Image Возвращает объект изображения.
 */
@method watermark(string $watermarkPath, int $x, int $y, int $opacity = 50): Image

// Создаем объект изображения.
$img = PLImage::make($img);
// Путь к файлу водяного знака
$watermarkPath = public_path('/watermark.png');
// Добавление водяного знака
$img->watermark($watermarkPath, 50, 100, 90);
// Сохраняем.
$img->save();
// Получаем путь.
$img->getSavePath();
// Очищаем.
$img->destroy();

// Или более краткий вариант
PLImage::make($request->file('file'))
    ->watermark($watermarkPath, 50, 100, 90)
    ->save()
    ->getSavePath()
    ->destroy();
```

backup() - Создает резервную копию изображения.
-----------------------------------------------

[](#backup---создает-резервную-копию-изображения)

```
 /**
 * Создает резервную копию изображения.
 */
@method backup(): void
```

reset() - Восстанавливает изображение из резервной копии.
---------------------------------------------------------

[](#reset---восстанавливает-изображение-из-резервной-копии)

```
/**
 * Восстанавливает изображение из резервной копии.
 */
@method reset(): void
```

### Пример с командами backup() и reset()

[](#пример-с-командами-backup-и-reset)

```
use Smetaniny\LaravelImage\Facades\PLImage;

$img = PLImage::make($request->file('file'));
// Создаем резервную копию.
$img->backup();
// Теперь проводим какие-то изменения.
$img->resize(300, null);
// Меняем имя файла.
$img->setFilename("thumb_300");
// Сохраняем
$img->save();
// Получаем путь
$img->getSavePath()
// Восстанавливаем изображение из резервной копии.
$img->reset();
// Меняем имя файла.
$img->setFilename("all");
// Сохраняем оригинальный размер.
$img->save();
// Получаем путь.
$img->getSavePath()
// Очищаем.
$img->destroy();
```

response() - Создает HTTP-ответ на основе изображения.
------------------------------------------------------

[](#response---создает-http-ответ-на-основе-изображения)

```
use Smetaniny\LaravelImage\Facades\PLImage;

/**
 * Создает HTTP-ответ на основе изображения. Полезно, когда нужно вернуть изображение как ответ на запрос.
 *
 * @param array $headers Заголовки ответа.
 *
 * @return Response HTTP-ответ.
 */
@method response(array $headers= []): Response

// Создаем объект изображения.
$img = PLImage::make($img);
// Создаем HTTP-ответ с использованием метода response.
$response = $img->response(['Content-Type' => 'image/jpeg']);
```

stream() - Выводит изображение в виде потока.
---------------------------------------------

[](#stream---выводит-изображение-в-виде-потока)

```
use Smetaniny\LaravelImage\Facades\PLImage;

 /**
 * Выводит изображение в виде потока.
 * Полезен, когда нужно передать большие файлы клиенту минимизируя использование памяти.
 *
 * @param array $headers Заголовки ответа.
 *
 * @return StreamedResponse Потоковый HTTP-ответ.
 */
@method stream(array $headers = []): StreamedResponse

// Создаем объект изображения.
$img = PLImage::make($img);
// Создаем HTTP-ответ с использованием метода stream.
$response = $img->stream(['Content-Type' => 'image/jpeg']);
```

### Создание пользовательских команд

[](#создание-пользовательских-команд)

```
// Создаем класс команды. Данная команда реализована в пакете и несет информационный характер.
namespace App\Http\Controllers;

use ImagickException;
use Smetaniny\LaravelImage\Contracts\Image;
use Smetaniny\LaravelImage\Image;
use Smetaniny\LaravelImage\Facades\PLImage;

class FlipCommand extends Image implements Image
{
    /**
     * Обрабатывает отражение изображения по горизонтали или вертикали.
     *
     * @param string $mode Режим отражения: 'h' для горизонтального, 'v' для вертикального.
     *
     * @return Image Возвращает объект изображения после отражения.
     * @throws ImagickException Исключение, если произошла ошибка Imagick при кодировании изображения.
     */
    public function execute(string $mode = 'h'): Image
    {
        // Получаем ресурс изображения.
        $imagick = $image->getImageResource();

        // Отражаем изображение в зависимости от режима.
        if ($mode === 'h') {
            $imagick->flopImage();
        } elseif ($mode === 'v') {
            $imagick->flipImage();
        }

        // Обновляем ресурс изображения в текущем объекте $image.
        $image->setImageResource($imagick);

        return $image;
    }
}

# Применение пользовательской команды.
namespace App\Http\Controllers;
use Smetaniny\LaravelImage\Facades\PLImage;

class MainController
{
    public function index()
    {
        # Создание объекта изображения на основе данных, предоставленных UploadedFile.
        $img = PLImage::make($request->file('file'));
        # Регистрируем команду.
        $img->registerCommand('flip', '\App\Http\Controllers\FlipCommand');
        # Применяем команду.
        $img->flip();
       // Сохраняем.
        $img->save();
        // Получаем путь.
        $img->getSavePath();
        // Очищаем.
        $img->destroy();
    }
}
```

Семантическое Версионирование
-----------------------------

[](#семантическое-версионирование)

Версии проекта имеют формат X.Y.Z, где:

- **X (Мажорная версия):** Мажорная версия увеличивается, когда внесены изменения, которые могут нарушить обратную совместимость.
- **Y (Минорная версия):** Минорная версия увеличивается, когда добавлены новые возможности с обратной совместимостью.
- **Z (Патч):** Патч увеличивается, когда внесены исправления без изменения обратной совместимости.

Пример изменения версии 1.2.3:

- **1 (Мажорная версия):** Основные изменения, возможно, несовместимые с предыдущими версиями.
- **2 (Минорная версия):** Добавление новых функций, совместимых с предыдущей версией.
- **3 (Патч):** Исправление ошибок, совместимое с предыдущей версией.

Если у вас остались вопросы, вы можете задать их в [телеграм](https://t.me/sm_sergey_v)

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

7

Last Release

811d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ad351d3fc63544e3cc2634fa86bed166b36e43b29e53279e3b34eb3593c8ffa0?d=identicon)[PlatinaJewelry](/maintainers/PlatinaJewelry)

---

Top Contributors

[![smetaniny](https://avatars.githubusercontent.com/u/43824930?v=4)](https://github.com/smetaniny "smetaniny (17 commits)")[![platina-jewelry](https://avatars.githubusercontent.com/u/158141180?v=4)](https://github.com/platina-jewelry "platina-jewelry (1 commits)")

---

Tags

laravelthumbnailimageimagickwatermarkLaravelImage

### Embed Badge

![Health badge](/badges/platinajewelry-image/health.svg)

```
[![Health](https://phpackages.com/badges/platinajewelry-image/health.svg)](https://phpackages.com/packages/platinajewelry-image)
```

###  Alternatives

[intervention/image

PHP Image Processing

14.3k194.3M2.2k](/packages/intervention-image)[intervention/image-laravel

Laravel Integration of Intervention Image

1496.5M102](/packages/intervention-image-laravel)[folklore/image

Image manipulation library for Laravel 5 based on Imagine and inspired by Croppa for easy url based manipulation

270248.2k5](/packages/folklore-image)[intervention/image-symfony

Symfony Integration of Intervention Image

1066.8k](/packages/intervention-image-symfony)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
