C#中位图getbrightness()的算法

Poo*_*far 3 c#

我想在 java 中实现一个计算颜色亮度的函数,与 C# getbrightness() 函数完全相同。所以我需要知道 C# 中使用的确切算法。这里有一些算法,但它们都有大约 5% 的错误。

Ulu*_*rov 5

使用官方来源: http://referencesource.microsoft.com/#System.Drawing/commonui/System/Drawing/Color.cs#23adaaa39209cc1f

public float GetBrightness()
{
    float r = (float)R / 255.0f;
    float g = (float)G / 255.0f;
    float b = (float)B / 255.0f;

    float max, min;

    max = r; min = r;

    if (g > max) max = g;
    if (b > max) max = b;

    if (g < min) min = g;
    if (b < min) min = b;

    return (max + min) / 2;
}
Run Code Online (Sandbox Code Playgroud)