Commit graph

38 commits

Author SHA1 Message Date
d62342aae1 Implement ImageCreatorImageSharp using SixLabors.ImageSharp for image processing
- Added ImageCreatorImageSharp class for image creation, handling EXIF orientation, resizing, and saving images.
- Replaced GDI+ dependencies with ImageSharp for cross-platform compatibility.
- Introduced methods for drawing text and logos on images, including handling transparency and positioning.
- Created a test plan for validating ImageCreatorImageSharp functionality, focusing on image resizing, text positioning, logo features, and EXIF orientation.
- Added documentation for the test plan outlining goals, project structure, and implementation notes.
2026-03-08 11:17:47 +01:00
73597689ed Cross-platform: remove System.Drawing deps, add #if WINDOWS
Refactored image creation APIs to use byte[] for logo data instead of System.Drawing.Image, enabling cross-platform support. Wrapped all GDI+/Windows-specific code in #if WINDOWS and updated project files to conditionally include Windows-only dependencies. Defaulted to ImageSharp on non-Windows, and updated UI and settings to reflect platform capabilities. Application now builds and runs on Linux/macOS with Avalonia and ImageSharp, while retaining full Windows functionality.
2026-02-26 19:17:23 +01:00
900e8b6bf8 Update CI configuration and assembly information; remove log file and add logo image 2026-02-21 19:03:02 +01:00
c70ab9e5de Renamed image creators 2026-02-21 15:53:52 +01:00
4091fb78c5 Center each text line individually when drawing on image
Updated text rendering logic to center each line horizontally
based on its estimated width, ensuring multi-line text is
visually centered. Previously, all lines were drawn at a fixed
horizontal position. Both shadow and main text now use the
calculated centered position.
2026-02-21 15:46:03 +01:00
7e1ca95a25 Improve text overlay for rotated and multi-line images
- Use vertical text variant (TestoFirmaV) for rotated images to ensure correct orientation of overlays.
- Adjust font sizing logic for multi-line text to better fit within image bounds, accounting for line count and spacing.
- Set rotation flags (FotoRuotaADestra, FotoRuotaASinistra) before drawing text, enabling correct text variant selection.
- Ensure vertical text field is initialized from settings for consistent behavior.
2026-02-21 15:43:26 +01:00
bbda970d57 Remove EXIF orientation tag after image processing
Ensures EXIF orientation is cleared when cloning and after rotation,
preventing incorrect display in EXIF-aware viewers. Failures are
logged as debug messages without interrupting processing.
2026-02-21 14:12:15 +01:00
f4893a39e9 Improve multi-line text, logo, and version display
- Enhance ImageCreatorAlternate to support multi-line text rendering with correct sizing, spacing, and shadow for each line.
- Only draw logos on non-thumbnail images to match GDI behavior.
- Add a status bar to MainWindow showing the app version at runtime.
- Upgrade MinVer to 7.0.0 and adjust versioning to avoid WPF/XAML assembly identity issues.
- Refactor XAML layout to accommodate the new status bar.
2026-02-17 20:51:35 +01:00
d13ec8abdf Refactor thumbnail options to enum and ComboBox UI
Replaced multiple mutually-exclusive boolean properties for thumbnail text options with a single enum (`ThumbnailOption`) in the data model. Updated WinForms UI to use a ComboBox instead of radio buttons for selecting thumbnail mode. Adjusted designer, mapping profile, settings DTO, and settings service for enum support and backward compatibility. Simplified thumbnail generation logic and improved maintainability by ensuring only one mode can be selected at a time.
2026-02-16 19:55:37 +01:00
8872080741 Add color-key transparency support for logo overlays
- Allow users to select a transparent color for logo images (watermarks) via UI (checkbox, color picker, preview).
- Apply color-key transparency in both System.Drawing and ImageSharp backends: specified color in logo is made fully transparent.
- Persist transparency settings in PicSettings and SettingsDto; bind to DataModel and UI controls.
- Update logo preview to reflect transparency in real time.
- Add option to select image processing library (System.Drawing or ImageSharp) in UI and settings.
- Fix bug in SettingsService parameter loading for int/double/DateTime.
- Fully integrate color-key transparency into image processing and settings serialization.
2026-02-15 11:13:23 +01:00
63751af18d Add selectable image library option and refactor processing
Introduce UI option to choose between System.Graphics and ImageSharp for image processing. Update DataModel and MainForm for robust binding and synchronization. Rewrite ImageCreatorAlternate to use ImageSharp for core operations and GDI+ for overlays. Remove test buttons, add radio group for library selection. Update project dependencies to support new features and modernize image handling.
2026-02-15 01:03:26 +01:00
e48c0d266b Add IImageCreator abstraction and runtime provider selection
Introduce IImageCreator interface for image creation, and update ImageCreatorSharp to implement it. Add ImageCreatorAlternate (adapter) and ImageCreatorMapper (runtime selector) classes. Extend PicSettings with ImageCreatorProvider to control backend selection. Update DI registrations and refactor ImageCreationStuff to depend on IImageCreator, enabling backend switching via configuration.
2026-02-15 00:14:04 +01:00
509d5357a8 Integrate GitVersion and add version provider abstraction
- Added GitVersion for semantic versioning and build metadata
- Introduced IVersionProvider and VersionProvider for UI-friendly version display
- MainForm now uses IVersionProvider for version label
- Registered VersionProvider in DI container
- Improved logging: filtered out AutoMapper license logs
- General code cleanup in Program.cs
2026-02-14 21:14:06 +01:00
c2fd4bf780 Add image processing benchmarks and UI folder open buttons
- Added MaddoShared.Benchmarks project with BenchmarkDotNet for comprehensive image processing performance tests (parallel, chunk, size, stress).
- Included helper for generating test images and custom configs to ensure InProcess toolchain for .NET Windows compatibility.
- Added cross-platform scripts to run benchmarks easily.
- Updated .gitignore for benchmark artifacts and temp files.
- Exposed GetFilesToProcessPublic in ImageCreationStuff for testability.
- Added file name sanitization in ImageCreatorSharp to prevent IO errors.
- Enhanced WinForms UI: added "Open" buttons for source/destination folders, handled folder opening in Explorer, and improved user messaging and layout.
- Updated solution file to include new benchmark project.
2026-02-14 19:20:25 +01:00
68c1106f65 Enhance image processing performance and flexibility by introducing atomic counters, improving file pattern matching, and refining logo positioning logic. 2026-02-10 21:18:46 +01:00
ba965e8266 Fixes and mapping 2026-02-04 23:16:06 +01:00
d73389d791 Update library and fixes 2026-02-04 21:12:27 +01:00
cfbc6334b6 Refactoring, upgrades and improvements to memory usage 2026-02-04 18:38:44 +01:00
a076f6b8fb Removed comment 2026-02-04 17:53:01 +01:00
Marco
a466efbb27 Formatting 2025-07-29 11:10:54 +02:00
Marco
1cd71c54fc Clean up 2025-07-29 10:34:23 +02:00
Marco
12d1bd57dc Override mode fix 2025-07-28 14:45:03 +02:00
Marco
abdd2a313a Race time fix 2025-07-28 12:26:23 +02:00
Marco
fa889a5cd3 Refactored image creator code 2025-07-28 11:25:46 +02:00
Marco
63aac7f911 modernized picsettings 2025-07-28 10:22:08 +02:00
Marco
4ceb46d65c Removed visual basic lib from project 2025-07-28 10:01:27 +02:00
Marco
ab33d4558f Removed visual basic lib dependency 2025-07-28 09:59:58 +02:00
Marco
65aeabdfee Updated libraries and made horizontal text property 2025-07-28 09:49:55 +02:00
Marco
ce347a7095 Preload logo 2025-07-25 10:34:54 +02:00
Marco
55713c340b Dispose images 2025-07-24 14:33:48 +02:00
Marco
b98623f092 optimizations 2025-07-23 17:16:06 +02:00
Marco
d8d8b152bd Errors fix, removed old library, Added logging 2025-07-23 15:08:25 +02:00
Marco
8048c41cd0 Upgraded to .NET 9 2025-07-08 14:35:27 +02:00
3a7a04920d Fixed Build 2024-10-14 19:54:29 +02:00
99b67870a5 2024 reopening 2024-10-14 18:54:30 +02:00
4cfc537246 Calcolo foto al minuto 2021-03-04 11:25:40 +01:00
9794ce1abb Gestione status dei thread 2021-03-04 10:44:09 +01:00
d133917283 Conversione a c# + threads 2021-02-25 11:14:44 +01:00