/// <summary> /// Provides the means to add essential ImageSharp services to the specified <see cref="IServiceCollection" /> with the given options. /// All additional services are required to be configured. /// </summary> /// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param> /// <param name="setupAction">An <see cref="Action{ImageSharpMiddlewareOptions}"/> to configure the provided <see cref="ImageSharpMiddlewareOptions"/>.</param> /// <returns>An <see cref="IImageSharpBuilder"/> that can be used to further configure the ImageSharp services.</returns> public static IImageSharpBuilder AddImageSharpCore(this IServiceCollection services, Action <ImageSharpMiddlewareOptions> setupAction) { Guard.NotNull(services, nameof(services)); services.TryAddTransient <IConfigureOptions <ImageSharpMiddlewareOptions>, ImageSharpConfiguration>(); IImageSharpBuilder builder = new ImageSharpBuilder(services); builder.Services.Configure(setupAction); builder.SetMemoryAllocatorFromMiddlewareOptions(); builder.SetFormatUtilitesFromMiddlewareOptions(); return(builder); }
/// <summary> /// Adds ImageSharp services to the specified <see cref="IServiceCollection" /> with the given options. /// </summary> /// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param> /// <param name="setupAction">An <see cref="Action{ImageSharpMiddlewareOptions}"/> to configure the provided <see cref="ImageSharpMiddlewareOptions"/>.</param> /// <returns>An <see cref="IImageSharpBuilder"/> that can be used to further configure the ImageSharp services.</returns> public static IImageSharpBuilder AddImageSharp( this IServiceCollection services, Action <ImageSharpMiddlewareOptions> setupAction) { Guard.NotNull(services, nameof(services)); Guard.NotNull(setupAction, nameof(setupAction)); services.TryAddTransient <IConfigureOptions <ImageSharpMiddlewareOptions>, ImageSharpConfiguration>(); IImageSharpBuilder builder = new ImageSharpBuilder(services); AddDefaultServices(builder, setupAction); return(builder); }