This repository has been archived on 2023-12-10. You can view files and clone it, but cannot push or open issues or pull requests.
PainterlyUNO/Matrix App/PregeneratedMods/effectors/Grayscale.cs

40 lines
1.2 KiB
C#
Raw Normal View History

using System.Windows.Forms;
using Matrix_App.PregeneratedMods.reflection;
2021-06-09 16:43:27 +00:00
using static Matrix_App.GifGeneratorUtils;
namespace Matrix_App.PregeneratedMods
{
public sealed class Grayscale : MatrixGifGenerator
{
2021-06-11 11:36:55 +00:00
[UiWidget]
[UiDescription(title: "use Luminance", description: "Use luminance as defined by ITU-R BT.709 as grayscale output")]
private bool byLuminance = false;
2021-06-09 16:43:27 +00:00
protected override void ColorFragment(in int x, in int y, in float u, in float v, in int frame, out float r, out float g, out float b)
{
2021-06-11 11:36:55 +00:00
SampleFrame(actualStore!, frame, x, y, width, out float lr, out float lg, out float lb);
2021-06-09 16:43:27 +00:00
if (byLuminance)
{
float luminance = 0.2126f * lr + 0.7152f * lg + 0.0722f * lb;
r = luminance;
g = luminance;
b = luminance;
} else
{
float average = (lr + lg + lb) * 0.3333f;
r = average;
g = average;
b = average;
}
}
protected override void CreateUi(FlowLayoutPanel anchor, update invokeGenerator)
{
}
2021-06-09 16:43:27 +00:00
}
}