package classify import "fmt" // standardResolution 标准分辨率规则:宽高精确匹配 type standardResolution struct { width int height int suffix string } var standardResolutions = []standardResolution{ {1280, 720, "720P"}, // 720p 标准高清 {1600, 900, "1D5KP"}, // 介于 HD 与 FHD 之间 {1920, 1080, "1080P"}, // 1080p 全高清 {2048, 1080, "2DKP"}, // 影院 2K {2560, 1440, "2D5KP"}, // 2.5K {2560, 1080, "UltraWide2KP"}, // 带鱼屏 {3440, 1440, "UltraWide3KP"}, // 带鱼屏 {5120, 2160, "UltraWide4KP"}, // 带鱼屏 {3840, 2160, "4KP"}, // 主流 4K {4096, 2160, "4KHP"}, // DCI 4K {7680, 4320, "8KP"}, // 8K } // 非标分辨率分档参数 const ( bucketStep = 1024 // 每 1024px 一档 maxLevel = 19 // 1K ~ 19K 共 19 档(普通另算 1 档,合计 20 档) ) // matchStandard 精确匹配标准分辨率,命中返回后缀,否则返回空串 func matchStandard(width, height int) string { for _, r := range standardResolutions { if r.width == width && r.height == height { return r.suffix } } return "" } // levelName 按长边分档:普通(<1024) / 1K~19K(每1024一档) / overflow(≥20480) func levelName(longEdge int, overflow string) string { if longEdge < bucketStep { return "普通" } level := longEdge / bucketStep if level > maxLevel { return overflow } return fmt.Sprintf("%dK", level) }