Este projeto implementa, em C, um sistema para manipulação de imagens (escala de cinza e RGB) com histórico reversível de operações e aplicação de efeitos aleatórios. O sistema possui interface gráfica baseada em Raylib e permite ao usuário aplicar operações de processamento de imagem, desfazer/refazer ações e visualizar o histórico.
- Suporte a imagens em escala de cinza e RGB
- Operações de processamento: rotação, inversão, filtros (blur, equalização de histograma, transpose, etc)
- Histórico reversível: desfazer e refazer operações usando lista duplamente encadeada
- Efeitos aleatórios: aplicação automática de uma sequência de efeitos, exibidos em lista encadeada simples
- Interface gráfica: seleção de operações, navegação pelo histórico e visualização das imagens processadas
- Lista Duplamente Encadeada: armazena o histórico de versões da imagem, permitindo navegação para frente e para trás
- Lista Simplesmente Encadeada: armazena a sequência de imagens geradas por efeitos aleatórios
image.h/image.c: Estruturas, funções de manipulação de imagens, histórico e efeitosutils/image_utils.h/utils/image_utils.c: Funções auxiliares para conversão entre imagens e arquivos txt/pngutils/stb_image.h: Biblioteca para leitura de imagens (stb_image)- Outros arquivos de recursos (imagens de exemplo, fontes, etc)
-
Compile o projeto usando o arquivo de build:
./build.sh -
Use a interface gráfica para carregar imagens, aplicar operações, desfazer/refazer e experimentar efeitos aleatórios.
- Raylib (para interface gráfica)
- stb_image.h (incluso no projeto)
Contribuições não são aceitas no momento, mas sinta-se à vontade para abrir issues ou discutir melhorias.
Este projeto é de uso pessoal e educacional. Não é permitido o uso comercial sem autorização prévia.