28 lines
791 B
Go
28 lines
791 B
Go
package classify
|
|
|
|
import "fmt"
|
|
|
|
// BrightnessName 根据暗色/亮色像素占比,给图片定"明暗等级",返回类似:
|
|
// - "dark_75" → 暗色像素占 50%~75% 的暗图
|
|
// - "bright" → 亮色像素比暗色多的亮图(不分子档位)
|
|
//
|
|
// 判断规则:亮色占比 > 暗色占比 → bright;否则按暗色占比取整到 25% 一档。
|
|
func BrightnessName(darkScore, lightScore float64) string {
|
|
if lightScore > darkScore {
|
|
return "bright"
|
|
}
|
|
return fmt.Sprintf("dark_%d", brightnessTier(darkScore))
|
|
}
|
|
|
|
// brightnessTier 把暗色占比(0~1)取整到最接近的 25% 档位,范围 25~100。
|
|
func brightnessTier(score float64) int {
|
|
tier := int(score*100+12) / 25 * 25
|
|
if tier < 25 {
|
|
return 25
|
|
}
|
|
if tier > 100 {
|
|
return 100
|
|
}
|
|
return tier
|
|
}
|