public void JpegDecoder_IsNotBoundToSinglePixelType <TPixel>(TestImageProvider <TPixel> provider) where TPixel : struct, IPixel <TPixel> { if (SkipTest(provider)) { return; } // For 32 bit test enviroments: provider.Configuration.MemoryAllocator = ArrayPoolMemoryAllocator.CreateWithModeratePooling(); using (Image <TPixel> image = provider.GetImage(JpegDecoder)) { image.DebugSave(provider); provider.Utility.TestName = DecodeBaselineJpegOutputName; image.CompareToReferenceOutput(ImageComparer.Tolerant(BaselineTolerance), provider, appendPixelTypeToFileName: false); } provider.Configuration.MemoryAllocator.ReleaseRetainedResources(); }
internal static void RunBufferCapacityLimitProcessorTest <TPixel>( this TestImageProvider <TPixel> provider, int bufferCapacityInPixelRows, Action <IImageProcessingContext> process, object testOutputDetails = null, ImageComparer comparer = null) where TPixel : unmanaged, IPixel <TPixel> { comparer ??= ImageComparer.Exact; using Image <TPixel> expected = provider.GetImage(); int width = expected.Width; expected.Mutate(process); var allocator = ArrayPoolMemoryAllocator.CreateDefault(); provider.Configuration.MemoryAllocator = allocator; allocator.BufferCapacityInBytes = bufferCapacityInPixelRows * width * Unsafe.SizeOf <TPixel>(); using Image <TPixel> actual = provider.GetImage(); actual.Mutate(process); comparer.VerifySimilarity(expected, actual); }
public static MemoryStream Resize(MemoryStream stream, int size, string format) { Configuration.Default.MemoryAllocator = ArrayPoolMemoryAllocator.CreateWithModeratePooling(); try { stream.Seek(0, SeekOrigin.Begin); using (var image = Image.Load(stream)) { int width, height; if (image.Width > image.Height) { width = size; height = image.Height * size / image.Width; } else { width = image.Width * size / image.Height; height = size; } image.Mutate(x => x .Resize(width, height)); var mstream = new MemoryStream(); image.Save(mstream, format.Contains("png") ? (IImageFormat)PngFormat.Instance : JpegFormat.Instance); return(mstream); } } finally { Configuration.Default.MemoryAllocator.ReleaseRetainedResources(); } }
/// <summary> /// Configures the function with injected services. /// </summary> /// <param name="builder">The function host builder.</param> public override void Configure(IFunctionsHostBuilder builder) { // Registers the ILogger instance builder.Services.AddLogging(loggingBuilder => { loggingBuilder.AddApplicationInsights(); loggingBuilder.AddFilter("EnrichmentPipeline", LogLevel.Trace); }); // Register services builder.Services.AddSingleton <ISystemInfoService, SystemInfoService>(isp => new SystemInfoService(typeof(Startup).Assembly)); builder.Services.AddSingleton(isp => new StaticTelemetryProperties(isp.GetRequiredService <ISystemInfoService>()) { ComponentName = typeof(Startup).Namespace, HostingEnvironment = "Functions", HostId = Environment.MachineName, }); builder.Services.AddSingleton <ITelemetryInitializer, TelemetryInitializer>(); builder.Services.AddApplicationInsightsTelemetry(); // Configure ImageSharp array pooling Configuration.Default.MemoryAllocator = ArrayPoolMemoryAllocator.CreateWithModeratePooling(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { //Configuration variable declaration string mailAccount, mailPassword, mailSenderAccount, mailSenderName, mailServer, databaseSecret; short mailPort; bool mailTLS; mailAccount = Configuration[Constants.Configuration.MailAccount]; mailPassword = Configuration[Constants.Configuration.MailSecret]; mailPort = Convert.ToInt16(Configuration[Constants.Configuration.MailPort]); mailTLS = Convert.ToBoolean(Configuration[Constants.Configuration.MailTLS]); mailSenderAccount = Configuration[Constants.Configuration.MailSenderAccount]; mailSenderName = Configuration[Constants.Configuration.MailSenderName]; mailServer = Configuration[Constants.Configuration.MailServer]; databaseSecret = Configuration[Constants.Configuration.DatabaseSecret]; services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); var builder = new SqlConnectionStringBuilder(Configuration.GetConnectionString("default")) { Password = databaseSecret }; services.AddDbContext <DatabaseContext>(options => options.UseSqlServer(builder.ConnectionString)); services.ConfigureApplicationCookie(options => { // Cookie settings options.Cookie.HttpOnly = true; options.Cookie.Expiration = TimeSpan.FromDays(1); // If the LoginPath isn't set, ASP.NET Core defaults // the path to /Account/Login. options.LoginPath = "/Account/Login"; // If the AccessDeniedPath isn't set, ASP.NET Core defaults // the path to /Account/AccessDenied. options.AccessDeniedPath = "/Account/AccessDenied"; options.SlidingExpiration = true; }); services.AddIdentity <User, IdentityRole>(config => { config.Password.RequiredLength = 6; config.Password.RequireDigit = false; config.Password.RequireUppercase = false; config.Password.RequireNonAlphanumeric = false; config.User.RequireUniqueEmail = true; config.SignIn.RequireConfirmedEmail = true; config.Tokens.EmailConfirmationTokenProvider = "emailconfirmation"; }) .AddEntityFrameworkStores <DatabaseContext>() .AddDefaultTokenProviders() .AddTokenProvider <EmailConfirmationTokenProvider <User> >("emailconfirmation"); services.Configure <DataProtectionTokenProviderOptions>(opt => opt.TokenLifespan = TimeSpan.FromHours(2)); services.Configure <EmailConfirmationTokenProviderOptions>(opt => opt.TokenLifespan = TimeSpan.FromDays(3)); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddOData(); services.AddMailKit(optionBuilder => { optionBuilder.UseMailKit(new MailKitOptions() { Server = mailServer, Port = mailPort, SenderName = mailSenderName, SenderEmail = mailSenderAccount, Account = mailAccount, Password = mailPassword, Security = mailTLS }); }); services.AddDefaultAWSOptions(Configuration.GetAWSOptions()); services.AddAWSService <IAmazonS3>(); services.AddSingleton(Configuration); SixLabors.ImageSharp.Configuration.Default.MemoryAllocator = ArrayPoolMemoryAllocator.CreateWithModeratePooling(); services.AddOptions <CaptchaSettings>().Bind(Configuration.GetSection("Captcha")); services.AddTransient <CaptchaVerificationService>(); }
static ImageUtils() { Configuration.Default.MemoryAllocator = ArrayPoolMemoryAllocator.CreateWithModeratePooling(); }
static IndexingCore() { Configuration.Default.MemoryAllocator = ArrayPoolMemoryAllocator.CreateWithModeratePooling(); // Used to override the default and prevent memory from purposely persisting. See here for more details https://docs.sixlabors.com/articles/imagesharp/memorymanagement.html }