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

@ -15,7 +15,7 @@ using SixLabors.ImageSharp.Metadata.Profiles.Exif;
namespace MaddoShared;
[SuppressMessage("Interoperability", "CA1416:Validate platform compatibility")]
public class ImageCreatorSharp(PicSettings picSettings, ILogger<ImageCreatorSharp> logger)
public class ImageCreatorSharp(PicSettings picSettings, ILogger<ImageCreatorSharp> logger) : IImageCreator
{
public async Task CreateImageAsync(ImageState imgState, Image logo)
{