refactor(classify): 重构图片明暗分类逻辑

- 移除固定的明暗阈值等级数组,改用动态分档机制
- 引入 neutralMargin 常量,当两分差幅小于 0.15 时视为中性图
- 修改 BrightnessName 函数,实现三分法分类:bright_N、dark_N、mid
- 新增 brightnessTier 辅助函数,将占比分档到最接近的 10%
- 完全透明的像素(alpha=0)不再参与明暗统计计算
- 更新错误提示信息,明暗分析失败时按中性 mid 归类
- 调整 README 文档描述,同步更新明暗分类规则说明
This commit is contained in:
2025-04-01 21:07:48 +08:00
parent 99b9460bcd
commit 13bb195e1d
5 changed files with 40 additions and 45 deletions
+8 -15
View File
@@ -8,7 +8,7 @@
- **标准分辨率归类**:720P、1080P、2K、2.5K、影院 2K、DCI 4K、8K 及带鱼屏(UltraWide 2K/3K/4K)等标准规格单独建目录
- **非标分辨率归类**:按像素区间(每 1024px 一档)自动归入 1K ~ 19K / 普通 / 原图(原画质)目录
- **方向区分**:横屏、竖屏、等比(正方形)分开整理,GIF 单独处理
- **明暗分类**:基于 ITU-R BT.601 亮度公式分析每张图片明暗程度,暗色(亮度 < 80)像素占比为 darkScore、亮色(亮度 > 175)像素占比为 lightScore,按主导分在目录名末尾追加 `-dark_100` ~ `-dark_55` / `-bright_85` ~ `-bright_15` 明暗等级
- **明暗分类**:基于 ITU-R BT.601 亮度公式分析每张图片明暗程度,暗色(亮度 < 80)像素占比为 darkScore、亮色(亮度 > 175)像素占比为 lightScore;以两者差幅判定亮暗主导,在目录名末尾追加 `-dark_N` / `-mid` / `-bright_N`(N 为占比四舍五入到 10% 的档位)
- **音频归类**:音频文件单独归入「音频」目录
- **异常兜底**:读取失败、不支持的格式自动归入「读取异常」「已忽略」目录
- **自动整理**:无需人工干预,扫描 → 分析 → 移动一次完成,跨磁盘自动降级为复制后删除
@@ -56,19 +56,9 @@ kenaito-media-picker.exe
```text
{uid}-图片_横屏_720P-dark_100 ← 1280×720,暗色主导
{uid}-图片_横屏_1D5KP-dark_95 ← 1600×900
{uid}-图片_横屏_1080P-bright_85 ← 1920×1080,亮色主导
{uid}-图片_横屏_2DKP-dark_75 ← 2048×1080(影院 2K)
{uid}-图片_横屏_2D5KP-bright_65 ← 2560×1440(2.5K)
{uid}-图片_横屏_ultraWide2KP-dark_55 ← 2560×1080(带鱼屏)
{uid}-图片_横屏_ultraWide3KP-bright_45 ← 3440×1440(带鱼屏)
{uid}-图片_横屏_ultraWide4KP-dark_85 ← 5120×2160(带鱼屏)
{uid}-图片_横屏_4KP-bright_35 ← 3840×2160
{uid}-图片_横屏_4KHP-dark_65 ← 4096×2160(DCI 4K)
{uid}-图片_横屏_8KP-bright_25 ← 7680×4320
{uid}-图片_横屏_1K ~ 19K-bright_15 ← 非标规格按像素区间(每 1024px 一档)
{uid}-图片_横屏_普通-dark_100 ← 像素不足 1024
{uid}-图片_横屏_原图-bright_85 ← 像素 ≥ 20480
{uid}-图片_横屏_1D5KP-mid ← 1600×900,明暗均衡
{uid}-图片_横屏_1080P-bright_100 ← 1920×1080,亮色主导
{uid}-图片_横屏_2DKP-dark_70 ← 2048×1080(影院 2K)
{uid}-图片_竖屏_... ← 竖屏按同样规则(普通 / 1K~19K / 原图)
{uid}-图片_等比_... ← 等比(正方形)按同样规则
{uid}-图片_GIF ← 所有 GIF 图片
@@ -101,7 +91,10 @@ darkScore = 亮度 < 80 的像素占比
lightScore = 亮度 > 175 的像素占比
```
亮色主导(`lightScore > darkScore`)归 `-bright_N`,否则归 `-dark_N`;每张图必归亮暗之一。暗色档位 55/65/75/85/95/100,亮色档位 15/25/35/45/55/65/75/85,取评分命中的最高一档(不足最低档归最低档)。大图(>100 万像素)自动采样加速。
- **判定规则**:`lightScore` 高于 `darkScore` 15 个百分点以上归 `-bright_N`,反之归 `-dark_N`;差幅不足 15% 视为中性归 `-mid`(不强制二选一)
- **档位命名**:N 为占比四舍五入到 10% 的档位(10~100),如 darkScore 0.70 → `dark_70`,表示占比命中 [N-5%, N+5%) 区间
- **透明处理**:完全透明的像素(alpha=0)不计入统计,全透明图片归 `-mid`
- **性能**:大图(>100 万像素)自动采样加速
## 目录结构