Skip to content

AshFungor/ggpeg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GGPEG image editor

ggpeg - это утилита командной строки, предназначенная для обработки изображений. Она поддерживает ряд команд, которые призваны предоставить пользователю возможность изменять изображения, представленные в разных форматах с помощью фильтров и операций форматирования, таких как, к примеру, поворот или отражение по осям. Как упоминалось ранее, программа может работать с двумя типами изображений - PPM (Portable Pixel Map) и PNG (Portable Network Graphics).

Установка и компиляция

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

название компонента актуальная версия на момент тестирования ссылка на репозиторий
Catch2 v3.3.2 ссылка
rang v3.2 ссылка
zlib v1.2.13 ссылка

Установить компоненты можно различными способами. Рекомендуемый нами способ состоит в использовании vcpkg - пакетного менеджера для C++ с открытым исходным кодом. После установки этого менеджера для загрузки компонентов достаточно использовать команду:

vcpkg install rang catch2 zlib

Для использования rang может потребоваться вручную создать пустой файл "rang-targets.cmake" в папке соответствующего модуля. Для компиляции следует использовать следующие команды из папки "build/" в корне проекта:

cmake .. -DCMAKE_TOOLCHAIN_FILE="<path_to_vcpkg_toolchain>" -DCMAKE_BUILD_TYPE=Debug
cmake --build .

После этого бинарный файл ggpeg можно найти в той же папке.

Поддерживаемые форматы изображений

ggpeg поддерживаются два формата - PPM и PNG, со следующими ограничениями:

формат изображения ограничения
PPM - только бинарный формат (P6)
- максимальное значение пикселя должно быть меньше 256
PNG - только 2 color_type (RGB) и глубина цвета 8 пикселей
- только стандартное расположение байт (no interlace)

Также стоит отметить, что обработка больших изображений (1 Mb и больше) может занять существенное время.

Поддерживаемые CLI опции

ggpeg поддерживает 7 функций обработки, приведенные в таблице ниже.

опция параметры назначение
rotate $\omega$ вращение изображения на $\omega \in Z$, где $\omega$ выражается в градусах. В случае, если поворот требует создания новых пикселей, они заполняются черным цветом.
crop a, b, c, d обрезка изображения на a, b, c и d процентов с четырех сторон.
insert image, x, y встраивание другого изображения в исходное по координатам (x, y).
reflect (X) - отражение изображения по оси X.
reflect (Y) - отражение изображения по оси Y.
resize k увеличение разрешения в k раз.
negative - фильтр "негатив"

Подробный список команд можно получить с помощью опции --help.

Структурная схема

alt text

About

Project for HSE, second semester.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published