181 lines
5.3 KiB
Markdown
181 lines
5.3 KiB
Markdown
# zenith-cli
|
|
|
|
**zenith-cli** — консольная утилита для Linux-дистрибутивов, которая позволяет скачать изображение и автоматически создать на его основе несколько цветовых палитр.
|
|
|
|
## ✨ Возможности
|
|
|
|
- 🖼️ Скачивание изображений по ссылке
|
|
- 🎨 Автоматическая генерация цветовых палитр
|
|
- 🌑 Тёмная палитра
|
|
- ☀️ Светлая палитра
|
|
- 🌙 Тёмная пастельная палитра
|
|
- 🌸 Светлая пастельная палитра
|
|
- 📁 Сохранение изображения и палитр в указанные директории
|
|
|
|
## 🎨 Генерируемые палитры
|
|
|
|
Для каждого изображения `zenith-cli` создаёт четыре варианта цветовой схемы:
|
|
|
|
| Палитра | Описание |
|
|
| --- | --- |
|
|
| 🌑 Dark | Тёмная цветовая схема |
|
|
| ☀️ Light | Светлая цветовая схема |
|
|
| 🌙 Dark Pastel | Тёмная пастельная схема |
|
|
| 🌸 Light Pastel | Светлая пастельная схема |
|
|
|
|
Все сгенерированные палитры сохраняются в рабочую директорию или в путь, указанный пользователем.
|
|
|
|
## 📦 Зависимости
|
|
|
|
Перед сборкой убедитесь, что в системе установлены:
|
|
|
|
- **CMake**
|
|
- **GCC**
|
|
- **G++**
|
|
- **curl**
|
|
- **OpenCV**
|
|
|
|
### Ubuntu / Debian
|
|
|
|
```
|
|
sudo apt install cmake gcc g++ curl libopencv-dev
|
|
```
|
|
|
|
### Arch Linux
|
|
|
|
```
|
|
sudo pacman -S cmake gcc curl opencv
|
|
```
|
|
|
|
### openSUSE Linux
|
|
|
|
```
|
|
sudo zypper in cmake gcc gcc-c++ curl libcurl-devel opencv opencv-devel
|
|
```
|
|
|
|
## 🔨 Сборка
|
|
|
|
Клонируйте репозиторий и запустите скрипт сборки:
|
|
|
|
```
|
|
git clone <https://zenithcode.duckdns.org/s13bby/zenith-cli.git>
|
|
cd zenith-cli
|
|
|
|
chmod +x build.sh
|
|
./build.sh
|
|
```
|
|
|
|
После успешной сборки будет доступна утилита:
|
|
|
|
```
|
|
./zenith-cli
|
|
```
|
|
|
|
## 🚀 Использование
|
|
|
|
Общий формат команды:
|
|
|
|
```
|
|
./zenith-cli --link="link" --scheme-output="path" --wall-output="path"
|
|
```
|
|
|
|
### Скачать изображение
|
|
|
|
Если передать пустую строку в `--wall-output`, изображение будет сохранено в директорию утилиты:
|
|
|
|
```
|
|
./zenith-cli \
|
|
--link="https://w.wallhaven.cc/full/gw/wallhaven-gwd313.jpg" \
|
|
--wall-output=""
|
|
```
|
|
|
|
### Указать директорию для обоев
|
|
|
|
```
|
|
./zenith-cli \
|
|
--link="https://w.wallhaven.cc/full/gw/wallhaven-gwd313.jpg" \
|
|
--wall-output="/home/ivan/"
|
|
```
|
|
|
|
Также можно использовать домашнюю директорию:
|
|
|
|
```
|
|
./zenith-cli \
|
|
--link="https://w.wallhaven.cc/full/gw/wallhaven-gwd313.jpg" \
|
|
--wall-output="~/"
|
|
```
|
|
|
|
### Указать директорию для палитр
|
|
|
|
```
|
|
./zenith-cli \
|
|
--link="https://w.wallhaven.cc/full/gw/wallhaven-gwd313.jpg" \
|
|
--scheme-output="/home/ivan/.config/zenith/"
|
|
```
|
|
|
|
## ⚙️ Аргументы
|
|
|
|
| Аргумент | Описание |
|
|
| --- | --- |
|
|
| `-h`, `--help` | Показать справку |
|
|
| `--link=<str>` | Ссылка на изображение с Wallhaven |
|
|
| `--scheme-output=<str>` | Директория для сохранения палитр |
|
|
| `--wall-output=<str>` | Директория для сохранения обоев |
|
|
|
|
## 💡 Пример
|
|
|
|
Допустим, необходимо скачать обои с Wallhaven и сохранить изображение в домашнюю директорию:
|
|
|
|
```
|
|
./zenith-cli \
|
|
--link="https://w.wallhaven.cc/full/gw/wallhaven-gwd313.jpg" \
|
|
--wall-output="~/"
|
|
```
|
|
|
|
После обработки `zenith-cli` сформирует несколько цветовых схем на основе изображения и сохранит их в соответствующую директорию.
|
|
|
|
## 🆘 Справка
|
|
|
|
Получить список доступных аргументов можно с помощью:
|
|
|
|
```
|
|
./zenith-cli --help
|
|
```
|
|
|
|
```
|
|
Usage:
|
|
|
|
-h, --help show this help message and exit
|
|
--link=<str> ссылка на изображение с сайта wallhave.cc
|
|
--scheme-output=<str> директория для сохранения палитр
|
|
--wall-output=<str> директория для сохранения обоев
|
|
```
|
|
|
|
## 📁 Структура проекта
|
|
|
|
```
|
|
zenith-cli/
|
|
├── main.cpp
|
|
├── libs/
|
|
│ ├── argparse.c
|
|
│ └── argparse.h
|
|
├── CMakeLists.txt
|
|
├── build.sh
|
|
├── LICENSE
|
|
├── README.md
|
|
└── .gitignore
|
|
```
|
|
|
|
## 🛠️ Технологии
|
|
|
|
- **C++** — основная логика приложения
|
|
- **OpenCV** — обработка изображений и генерация палитр
|
|
- **curl** — загрузка изображений
|
|
- **CMake** — система сборки
|
|
- **argparse** — обработка аргументов командной строки
|
|
|
|
## 📄 Лицензия
|
|
|
|
MIT
|
|
|
|
--- |