-
Notifications
You must be signed in to change notification settings - Fork 0
Dev #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Dev #11
Conversation
…ild antes da compilação
- Added ConfigManager class for managing application configurations with methods for loading, saving, and resetting settings. - Introduced IProcessingStrategy interface for image processing strategies. - Created ProcessingStrategyManager to register and manage different processing strategies. - Developed UserProfile and UserProfileManager for handling user profiles and preferences. - Enhanced GIF creation functionality in tsimg_gif with new parameters for delay, loop, and quality. - Refactored image handling in tsimg_spice to improve image processing and management. - Added new utility classes and methods for image validation, processing, and caching. - Introduced a comprehensive image processing pipeline and collection manager for better organization and manipulation of images.
…utilitários de teste
…o de arquivos SPICE
- Removed the monolithic `tsimg_spice.h` and replaced it with modular headers for better maintainability and organization. - Introduced new utility classes for file handling, image processing, validation, and logging. - Implemented Base64 encoding and file I/O operations. - Added JSON utility for reading configuration files. - Updated version to 0.1.7.276.
…reza e manutenção
…rios e refatorar a estrutura do projeto
…os e diretórios; refatorar variáveis globais em main.cpp
…JSON; refatorar TSIMGPipeline para usar nova configuração
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request implements a comprehensive modernization and refactoring of the TSIMG project, bumping the version from 0.1.7 to 0.2.0. The changes focus on professionalizing the codebase through improved architecture, build system modernization, and CI/CD integration.
Key Changes:
- Modernized CMake build system with proper target-based configuration and CPack integration for packaging
- Significant code refactoring: monolithic
tsimg_spice.cpp(~849 lines) split into modular components organized underutils/,spice/,generators/, andcore/directories - New pipeline architecture (
TSIMGPipeline) with strategy pattern for format generators (SPICE/GIF) - Enhanced build info generation system with dynamic version management from
VERSIONfile - Added CI/CD workflows for automated testing, static analysis, and releases
Reviewed changes
Copilot reviewed 57 out of 58 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| version.rc | Updated version metadata to 0.2.0.0 with minor inconsistency in FileVersion format |
| utils/generate_build_info.py | Completely rewritten to support CMake integration and generate C++ source files |
| CMakeLists.txt | Modernized from CMake 3.10 to 3.15+ with target-based approach and packaging support |
| src/tsimg_spice.h | Converted to aggregator header including modular components |
| src/spice/*.cpp/h | New modular SPICE implementation files (Image, SPICEBuilder, TemplateWriter, etc.) |
| src/utils/*.cpp/h | New utility modules (Logger, FileHandler, ImageValidator, Base64, ConfigManager) |
| src/generators/*.cpp/h | New generator pattern implementation for SPICE and GIF formats |
| src/core/TSIMGPipeline.* | New pipeline architecture for unified processing workflow |
| src/main.cpp | Refactored to use new ConfigManager and pipeline architecture |
| templates/base_template.html | New base HTML template for SPICE files |
| .github/workflows/*.yml | New CI/CD workflows for testing, static analysis, and releases |
| README.md | Enhanced documentation with build instructions and usage examples |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| for (auto& future : futures) { | ||
| try { | ||
| auto img = future.get(); | ||
| if (img && !img->toBase64().empty()) { |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The method name toBase64() in the Image class is inconsistent with the original getBase64() naming pattern. This breaks backward compatibility and could cause issues in existing code that relies on the original API. Consider either keeping getBase64() or providing it as an alias.
| if (img && !img->toBase64().empty()) { | |
| if (img && !img->getBase64().empty()) { |
| VALUE "CompanyName", "NEPEM-UFSC\0" | ||
| VALUE "FileDescription", "TSIMG - Temporal Series Interactive Imager\0" | ||
| VALUE "FileVersion", "0.1.7.271\0" | ||
| VALUE "FileVersion", "0.2.0.0.0\0" |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The version string format in version.rc is inconsistent. Line 22 shows "0.2.0.0.0\0" (5 components) while line 27 shows "0.2.0.0\0" (4 components). The FileVersion should match the format used in FILEVERSION (4 components: major.minor.patch.build).
| GifWriter gif; | ||
| if (!GifBegin(&gif, output_filename.c_str(), width, height, 100)) { | ||
| int gif_loop = loop ? 0 : 1; // 0 = loop infinito, 1 = sem loop (ajuste conforme a lib gif.h) | ||
| if (!GifBegin(&gif, output_filename.c_str(), width, height, delay, gif_loop)) { |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The function signature for GifBegin appears to be called with 5 arguments but the comment on line 29 suggests the library might not support all these parameters. Verify that the gif.h library version being used actually supports the gif_loop parameter as the 5th argument. This could cause compilation errors or undefined behavior if the signature is incorrect.
| <!DOCTYPE html> | ||
| <!-- | ||
| Este é um arquivo HTML, gerado a partir de um arquivo .spice. | ||
| Um arquivo .spice é um formato customizado desenvolvido para facilitar a exibição de imagens seriadas em uma plataforma web, multiplataforma, sem a necessidade de plugins ou extensões adicionais. Imagens seriadas são uma série de imagens que representam alterações temporais ou dimensionais de um objeto ou fenômeno, e são comumente utilizadas em áreas como medicina, geociências, astronomia, entre outras. Seus usos incluem a visualização de mapas de profundiade, imagens de ressonância magnética, tomografias computadorizadas, imagens de satélite em diferentes datas e etc. |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spelling error: "profundiade" should be "profundidade" (Portuguese for "depth").
| Um arquivo .spice é um formato customizado desenvolvido para facilitar a exibição de imagens seriadas em uma plataforma web, multiplataforma, sem a necessidade de plugins ou extensões adicionais. Imagens seriadas são uma série de imagens que representam alterações temporais ou dimensionais de um objeto ou fenômeno, e são comumente utilizadas em áreas como medicina, geociências, astronomia, entre outras. Seus usos incluem a visualização de mapas de profundiade, imagens de ressonância magnética, tomografias computadorizadas, imagens de satélite em diferentes datas e etc. | ||
| O nome "SPICE" é um acrônimo para "Serialized Picture Interactive Content Environment". Este formato permite a integração de texto, imagens e outros elementos multimídia em um único arquivo HTML, que pode ser facilmente visualizado em navegadores modernos. | ||
| A criação e manipulação de arquivos .spice é feita atraves do projeto TSIMG, que visa facilitar a visualização de imagens seriadas em navegadores web. O projeto TSIMG e suas ferramentas, como o gerador deste arquivo são mantidos pelo NEPEM-UFSC |
Copilot
AI
Nov 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spelling error: "atraves" should be "através" (Portuguese for "through").
No description provided.