C#中位图getbrightness()的算法

本文关键字:算法 getbrightness 位图 | 更新日期: 2023-09-27 17:59:23

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

C#中位图getbrightness()的算法

使用官方来源: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;
}