From ffc9f10399b75a7ed6e4890ce0221dd9e8ff8c9e Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Wed, 28 Aug 2019 12:08:10 +0200 Subject: [PATCH] Explicitly dispose ImageSharp images. --- Content.Client/Parallax/ParallaxGenerator.cs | 47 ++++++++++---------- Content.Client/Parallax/ParallaxManager.cs | 2 + 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/Content.Client/Parallax/ParallaxGenerator.cs b/Content.Client/Parallax/ParallaxGenerator.cs index 98823fc160..42ff0e2406 100644 --- a/Content.Client/Parallax/ParallaxGenerator.cs +++ b/Content.Client/Parallax/ParallaxGenerator.cs @@ -320,33 +320,34 @@ namespace Content.Client.Parallax public override void Apply(Image bitmap) { // Temporary buffer so we don't mess up blending. - var buffer = new Image(Configuration.Default, bitmap.Width, bitmap.Height, Rgba32.Black); - - if (Masked) + using (var buffer = new Image(Configuration.Default, bitmap.Width, bitmap.Height, Rgba32.Black)) { - GenPointsMasked(buffer); - } - else - { - GenPoints(buffer); - } - - var srcSpan = buffer.GetPixelSpan(); - var dstSpan = bitmap.GetPixelSpan(); - - var width = bitmap.Width; - var height = bitmap.Height; - - for (var y = 0; y < height; y++) - { - for (var x = 0; x < width; x++) + if (Masked) { - var i = y * width + x; + GenPointsMasked(buffer); + } + else + { + GenPoints(buffer); + } - var dstColor = dstSpan[i].ConvertImgSharp(); - var srcColor = srcSpan[i].ConvertImgSharp(); + var srcSpan = buffer.GetPixelSpan(); + var dstSpan = bitmap.GetPixelSpan(); - dstSpan[i] = Color.Blend(dstColor, srcColor, DstFactor, SrcFactor).ConvertImgSharp(); + var width = bitmap.Width; + var height = bitmap.Height; + + for (var y = 0; y < height; y++) + { + for (var x = 0; x < width; x++) + { + var i = y * width + x; + + var dstColor = dstSpan[i].ConvertImgSharp(); + var srcColor = srcSpan[i].ConvertImgSharp(); + + dstSpan[i] = Color.Blend(dstColor, srcColor, DstFactor, SrcFactor).ConvertImgSharp(); + } } } } diff --git a/Content.Client/Parallax/ParallaxManager.cs b/Content.Client/Parallax/ParallaxManager.cs index f534472456..12967824c8 100644 --- a/Content.Client/Parallax/ParallaxManager.cs +++ b/Content.Client/Parallax/ParallaxManager.cs @@ -96,6 +96,8 @@ namespace Content.Client.Parallax image.SaveAsPng(stream); } + image.Dispose(); + using (var stream = _resourceCache.UserData.Open(ParallaxConfigOld, FileMode.Create)) using (var writer = new StreamWriter(stream, EncodingHelpers.UTF8)) {