Browse Source

Inline methods for perf

Former-commit-id: 74f419b4df37488676902624f09ba160c1974f7f
Former-commit-id: bdf812eb8dd5746ba204ba70ba938cce33dcae7f
Former-commit-id: ccd1ba3f85cf3b4fb101e1ea78f61b836fda3fe1
af/merge-core
James Jackson-South 10 years ago
parent
commit
fb8b0f8575
  1. 25
      src/ImageProcessor/Filters/Brightness.cs
  2. 43
      src/ImageProcessor/Filters/Contrast.cs
  3. 3
      src/ImageProcessor/Samplers/EntropyCrop.cs
  4. 1
      tests/ImageProcessor.Tests/Processors/Filters/FilterTests.cs

25
src/ImageProcessor/Filters/Brightness.cs

@ -50,28 +50,15 @@ namespace ImageProcessor.Filters
{
for (int x = startX; x < endX; x++)
{
target[x, y] = AdjustBrightness(source[x, y], brightness);
Color color = Color.Expand(source[x, y]);
Vector3 vector3 = color.ToVector3();
vector3 += new Vector3(brightness);
target[x, y] = Color.Compress(new Color(vector3, color.A));
}
}
});
}
/// <summary>
/// Returns a <see cref="Color"/> with the brightness adjusted.
/// </summary>
/// <param name="color">The source color.</param>
/// <param name="brightness">The brightness adjustment factor.</param>
/// <returns>
/// The <see cref="Color"/>.
/// </returns>
private static Color AdjustBrightness(Color color, float brightness)
{
color = Color.Expand(color);
Vector3 vector3 = color.ToVector3();
vector3 += new Vector3(brightness, brightness, brightness);
return Color.Compress(new Color(vector3, color.A));
}
}
}

43
src/ImageProcessor/Filters/Contrast.cs

@ -49,38 +49,25 @@ namespace ImageProcessor.Filters
{
for (int x = startX; x < endX; x++)
{
target[x, y] = AdjustContrast(source[x, y], contrast);
}
}
});
}
Color color = Color.Expand(source[x, y]);
/// <summary>
/// Returns a <see cref="Color"/> with the contrast adjusted.
/// </summary>
/// <param name="color">The source color.</param>
/// <param name="contrast">The contrast adjustment factor.</param>
/// <returns>
/// The <see cref="Color"/>.
/// </returns>
private static Color AdjustContrast(Color color, float contrast)
{
color = Color.Expand(color);
// Seems to be faster than Vector3.
color.R -= 0.5f;
color.R *= contrast;
color.R += 0.5f;
// Seems to be faster than Vector3.
color.R -= 0.5f;
color.R *= contrast;
color.R += 0.5f;
color.G -= 0.5f;
color.G *= contrast;
color.G += 0.5f;
color.G -= 0.5f;
color.G *= contrast;
color.G += 0.5f;
color.B -= 0.5f;
color.B *= contrast;
color.B += 0.5f;
color.B -= 0.5f;
color.B *= contrast;
color.B += 0.5f;
return Color.Compress(color);
target[x, y] = Color.Compress(color);
}
}
});
}
}
}

3
src/ImageProcessor/Samplers/EntropyCrop.cs

@ -16,6 +16,9 @@ namespace ImageProcessor.Samplers
/// </summary>
public class EntropyCrop : ParallelImageProcessor
{
/// <summary>
/// The rectangle for cropping
/// </summary>
private Rectangle cropRectangle;
/// <summary>

1
tests/ImageProcessor.Tests/Processors/Filters/FilterTests.cs

@ -3,7 +3,6 @@ namespace ImageProcessor.Tests
{
using System.Diagnostics;
using System.IO;
using System.Numerics;
using ImageProcessor.Filters;

Loading…
Cancel
Save