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.
This commit is contained in:
MaddoScientisto 2026-02-15 00:14:04 +01:00
commit e48c0d266b
7 changed files with 92 additions and 2 deletions

View file

@ -103,6 +103,11 @@ static class Program
services.AddTransient<ImageCreationStuff>();
services.AddTransient<ImageCreatorSharp>();
services.AddTransient<ImageCreatorAlternate>();
services.AddTransient<ImageCreatorMapper>();
// Register IImageCreator to be resolved via ImageCreatorMapper which selects concrete implementation at call time
services.AddTransient<IImageCreator>(sp => sp.GetRequiredService<ImageCreatorMapper>());
// Register a ParametriSetup singleton that persists user preferences in LocalApplicationData
var userPrefsPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),