Explicitly dispose ImageSharp images.

This commit is contained in:
Pieter-Jan Briers
2019-08-28 12:08:10 +02:00
parent 0f0a3eb822
commit ffc9f10399
2 changed files with 26 additions and 23 deletions

View File

@@ -320,33 +320,34 @@ namespace Content.Client.Parallax
public override void Apply(Image<Rgba32> bitmap) public override void Apply(Image<Rgba32> bitmap)
{ {
// Temporary buffer so we don't mess up blending. // Temporary buffer so we don't mess up blending.
var buffer = new Image<Rgba32>(Configuration.Default, bitmap.Width, bitmap.Height, Rgba32.Black); using (var buffer = new Image<Rgba32>(Configuration.Default, bitmap.Width, bitmap.Height, Rgba32.Black))
if (Masked)
{ {
GenPointsMasked(buffer); if (Masked)
}
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++)
{ {
var i = y * width + x; GenPointsMasked(buffer);
}
else
{
GenPoints(buffer);
}
var dstColor = dstSpan[i].ConvertImgSharp(); var srcSpan = buffer.GetPixelSpan();
var srcColor = srcSpan[i].ConvertImgSharp(); 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();
}
} }
} }
} }

View File

@@ -96,6 +96,8 @@ namespace Content.Client.Parallax
image.SaveAsPng(stream); image.SaveAsPng(stream);
} }
image.Dispose();
using (var stream = _resourceCache.UserData.Open(ParallaxConfigOld, FileMode.Create)) using (var stream = _resourceCache.UserData.Open(ParallaxConfigOld, FileMode.Create))
using (var writer = new StreamWriter(stream, EncodingHelpers.UTF8)) using (var writer = new StreamWriter(stream, EncodingHelpers.UTF8))
{ {