2023-07-19 20:42:17 -07:00

34 lines
772 B
C#

using UnityEngine;
namespace NewHorizons.Utility.Files.NHTexture;
public class LerpGreyscale : ITextureOperation
{
private readonly Color _lightTint;
private readonly Color _darkTint;
public LerpGreyscale(Color lightTint, Color darkTint)
{
_lightTint = lightTint;
_darkTint = darkTint;
}
public string Description => $"lerp greyscale {_lightTint} {_darkTint}";
public Texture2D Apply(Texture2D src)
{
var pixels = src.GetPixels();
for (int i = 0; i < pixels.Length; i++)
{
pixels[i].r = Mathf.Lerp(_darkTint.r, _lightTint.r, pixels[i].r);
pixels[i].g = Mathf.Lerp(_darkTint.g, _lightTint.g, pixels[i].g);
pixels[i].b = Mathf.Lerp(_darkTint.b, _lightTint.b, pixels[i].b);
}
src.SetPixels(pixels);
src.Apply();
return null;
}
}