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.
- Host: GitHub
- URL: https://github.com/pkg-ru/imager-client
- Owner: pkg-ru
- License: gpl-3.0
- Created: 2025-03-23T15:03:04.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2025-03-23T20:40:38.000Z (10 months ago)
- Last Synced: 2025-09-23T13:53:11.878Z (4 months ago)
- Topics: golang, golang-package, javascript, javascript-package, php, php-package, python3, python3-package, typescript, typescript-package
- Language: Go
- Homepage:
- Size: 88.9 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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"
```