An open API service indexing awesome lists of open source software.

https://github.com/pkg-ru/imager-client

Компонент для генерации ссылок на сжатые миниатюры картинок в микро-сервисе Imager.
https://github.com/pkg-ru/imager-client

golang golang-package javascript javascript-package php php-package python3 python3-package typescript typescript-package

Last synced: 5 days ago
JSON representation

Компонент для генерации ссылок на сжатые миниатюры картинок в микро-сервисе Imager.

Awesome Lists containing this project

README

          

# [Imager](https://github.com/pkg-ru/imager) Client

Компонент для генерации ссылок на сжатые миниатюры картинок в микро-сервисе **Imager**.

> Для работы нужно настроить и запустить [микро-сервис Imager](https://github.com/pkg-ru/imager).

## Документация: **RU** / [EN](./doc/README-EN.md)

- [Golang](./doc/GO-RU.md)
- [PHP](./doc/PHP-RU.md)
- [JavaScript (TS)](./doc/TS-RU.md)
- [Python3](./doc/PY-RU.md)

---

### Общие сведения

Инициализация компонента

**Imager**(_thumb_)

> ##### _thumb_ - название настроек на сервере (по умолчанию: `default`)
>
> Можно передать массив настроек, кроме реализации на языке Go.

Настройки обработки картинок на сервере

**thumb**(_thumb_)

> ##### _thumb_ - название настроек на сервере (по умолчанию: `default`)

Ширина картинки

**width**(_width_)

> ##### _width_ - ширина.
>
> Если передать `0`, то ширина не изменяется, и сохраняет свои пропорции относительно высоты.

Высота картинки

**height**(_height_)

> ##### _height_ - высота.
>
> Если передать `0`, то высота не изменяется, и сохраняет свои пропорции относительно ширины.

Установка ширины и высоты изображения

**size**(_width_, _height_)

> ##### _width_ - ширина.
>
> Если передать `0`, то ширина не изменяется, и сохраняет свои пропорции относительно высоты.

> ##### _height_ - высота.
>
> Если передать `0`, то высота не изменяется, и сохраняет свои пропорции относительно ширины.

Обрезка изображения в размер

**crop**(_crop_)

> ##### _crop_ - обрезка изображения (по умолчанию `false`).
>
> Если `true` — при установке ширины и высоты этот параметр масштабирует и обрезает картинку в указанный размер.
> Если `false` — при установке ширины и высоты параметр масштабирует картинку в указанный размер.
> Поля, которые образуются в результате масштабирования, закрашиваются установленным цветом или остаются прозрачными (если это возможно).

Повтор анимации

**loop**(_loop_)

> ##### _loop_ - повтор анимации (по умолчанию `true`).
>
> Если `true` — анимация зацикливается.
> Если `false` — анимация проигрывается 1 раз.

Заливка фона цветом

**color**(_r_, _g_, _b_)

> ##### _r_ - Красный.
>
> ##### _g_ - Зеленый.
>
> ##### _b_ - Синий.
>
> Устанавливает цвет заливки фона в RGB формате.

Обрезание краев картинки

**trim**(_active_, _rate_, _colors_)

> ##### _active_ - активность фильтра.
>
> ##### _rate_ - степень сравнения цветов (чем ниже, тем точнее цвет).
>
> ##### _colors_ - список цветов в RGB формате: `[[255, 255, 255], [0, 0, 0]]`.
>
> С помощью этого фильтра можно обрезать картинку по прозрачным пикселям, черным/белым или любым другим цветам, которые находятся по краям (верх/низ/лево/право) картинки.

Активность обрезания краев картинки

**trimActive**(_active_)

> ##### _active_ - активность фильтра обрезания краев.
>
> Если `true` — обрезаем.
> Если `false` — не обрезаем.

Степень сопоставления цвета для обрезания краев

**trimRate**(_rate_)

> ##### _rate_ - степень сопоставления цвета.
>
> Чем ниже это значение, тем точнее сопоставляется цвет.

Цвета, которые будут обрезаны по краям

**trimColors**(_colors_)

> ##### _colors_ - список цветов.
>
> Список в RGB формате: `[[255, 255, 255], [0, 0, 0]]`.

Качество превью картинки

**quality**(_quality_)

> ##### _quality_ - качество результата.
>
> Чем ниже значение, тем хуже качество и меньше размер файла (не для файлов результата: gif/png).

Настройка (кроме Go)

**setting**(_setting_)

> ##### _setting_ - список/массив настроек (кроме Go).
>
> Пример:
>
> ```js
> {
> # ширина
> 'width': 100,
> # высота
> 'height': 100,
> # качество
> 'quality': 85,
> # обрезка в размер
> 'crop': false,
> # повтор анимации
> 'loop': true,
> # цвет заливки
> 'color': [255, 255, 255],
> # обрезка краев
> 'trimActive': true,
> # степень сопоставления при обрезании краев
> 'trimRate': 20,
> # список цветов для обрезания краев
> 'trimColor': [[255, 255, 255], [0, 0, 0]],
> }
> ```

Копирование, чтобы не вносить изменения в общий экземпляр

**copy**() / **clone**()

> Можно использовать для группировки по типам/настройкам ассетов.

Получение ссылки без изменения формата картинки

**get**(_file_, _setting_)

> ##### _file_ - путь к исходному файлу (относительно web).
>
> ##### _setting_ - список/массив настроек (кроме Go).
>
> Генерирует ссылку на ассет картинки по установленным параметрам, без изменения расширения исходного файла.

Получение ссылки с конвертацией в другой формат

**convert**(_file_, _format_, _setting_)

> ##### _file_ - путь к исходному файлу (относительно web).
>
> ##### _format_ - формат файла результата.
>
> ##### _setting_ - список/массив настроек (кроме Go).
>
> Генерирует ссылку на ассет картинки по установленным параметрам и с установленным расширением файла результата.

---

## Клонирование репозитория

```bash
git clone https://github.com/pkg-ru/imager-client.git && cd imager-client
```

## Установка контейнера разработки

```bash
docker compose build && docker compose start
```

## Запуск тестов

```bash
docker exec -it imager-client bash -c "go run test/*.go"
```

## Сборка

```bash
docker exec -it imager-client bash -c "go run test/*.go && npm run build && python3 -m build"
```