feat: 目录层级变更

This commit is contained in:
2025-09-24 21:19:55 +08:00
parent 7792f9281c
commit 72c9d67d9b
12 changed files with 156 additions and 317 deletions
+28 -14
View File
@@ -2,26 +2,40 @@ package classify
import "fmt"
// BrightnessName 根据暗色/亮色像素占比,给图片定"明暗等级",返回类似:
// - "dark_75" → 暗色像素占 50%~75% 的暗图
// - "bright" → 亮色像素比暗色多的亮图(不分子档位)
// BrightnessName 根据暗色像素占比,给图片定"明暗等级",返回类似:
// - "dark_25" → 暗色像素占 0%~33% 的偏亮图
// - "dark_50" → 暗色像素占 33%~66% 的中间调
// - "dark_75" → 暗色像素占 66%~100% 的暗图
//
// 判断规则:亮色占比 > 暗色占比 → bright;否则按暗色占比取整到 25% 一档。
// 三档按 33%/66% 等分。
func BrightnessName(darkScore, lightScore float64) string {
if lightScore > darkScore {
return "bright"
}
return fmt.Sprintf("dark_%d", brightnessTier(darkScore))
}
// brightnessTier 把暗色占比(0~1)取整到最接近的 25% 档位,范围 25~100。
// brightnessTier 把暗色占比(0~1)映射到三档:25/50/75。
// 分界点:33% 和 66%。
func brightnessTier(score float64) int {
tier := int(score*100+12) / 25 * 25
if tier < 25 {
switch {
case score < 0.33:
return 25
case score < 0.66:
return 50
default:
return 75
}
}
// NsfwLevelName 根据色情评分(0~1)返回中文分档名称。
// 四档:安全(0~0.25)/ 低俗(0.25~0.5)/ 擦边(0.5~0.75)/ 色情(0.75~1)。
func NsfwLevelName(score float64) string {
switch {
case score < 0.25:
return "安全"
case score < 0.5:
return "低俗"
case score < 0.75:
return "擦边"
default:
return "色情"
}
if tier > 100 {
return 100
}
return tier
}