Este programa es un gestor de imágenes en formato PPM de tipo P6. Para poder operar con estas imágenes se implementó una versión simplificada y básica de ppm que básicamente permite crear nuevas imágenes, leerlas desde el disco o guardarlas en el disco.
La implementación de ppm, puede verse en los archivos src/ppm.c
y include/ppm.h
. Para
poder realizar operaciones sobre las imágenes, existe otra librería llamada
ppm-operations. Esta librería ofrece funciones de transformación de imágenes
respetando siempre la idea de devolver una nueva imagen transformada a partir de
la imagen original.
Para compilar y ejecutar el programa:
$ git clone https://github.com/Maqui-LP/ppm-operations.git
$ cd ./ppm-operations
$ make
$ ./bin/ppm --help
Para realizar operaciones sobre las imagenes, el programa cuenta con los siguientes flags:
-i entrada.ppm
: archivo origen. Opción requerida-o salida.ppm
o--output salida.ppm
: archivo salida. Opción requerida-n
o--negative
: calcula el negativo-r
o--rotate
: rota a 90 grados-h
o--horizontal
: espejo horizontal-v
o--vertical
: espejo vertical-s
o--sepia
: filtro sepia-g
o--grayscale
: filtro escala de grises-w
o--black-white
: filtro blanco y negro-b NUM
o--blur NUM
: desenfoque con radio NUM-?
o--help
: ayuda del programa
$ ./bin/ppm -i input.ppm -o output.ppm
$ ./bin/ppm -i input.ppm -o output.ppm -n
$ ./bin/ppm -i input.ppm -h -o output.ppm -b 2
El directorio ./samples
tiene ejemplos de PPMs
Para validar que el programa funciona correctamente, se cuenta con un GitHub Action que ejecuta tests de integración. Los mismos se pueden ejecutar localmente con el siguiente comando:
$ make test
Para asegurar que el programa no cuenta con memory leaks, se cuenta con un Github Action que ejecuta pruebas de memoria utilizando Valgrind. Estas pruebas pueden ejecutarse localmente con el siguiente comando:
$ make valgrind