```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

feat(data): 添加随机颜色生成功能并重构发光滤镜默认配置

- 引入 grand 包用于生成随机数
- 将 GlowFilterDefault 常量改为 GetDef() 函数,实现动态配置
- 修改默认发光滤镜参数:Alpha从0.8改为0.1,BlurX/BlurY从10改为8,
  Quality从2改为1,Level从1改为2
- 新增 RandomRGBToUint32() 函数生成随机RGB颜色并转换为uint32格式
- 在GetDef()函数中使用随机颜色替代固定颜色值

refactor(config): 优化闪光效果服务中的矩阵生成逻辑

- 移除不必要的变量声明,直接在赋值时调用GenerateRandomOffspringMatrix
This commit is contained in:
昔念
2026-02-28 22:31:33 +08:00
parent 8bc3fd3cb7
commit 24f83c0284
2 changed files with 28 additions and 16 deletions

View File

@@ -1,5 +1,7 @@
package data
import "github.com/gogf/gf/v2/util/grand"
// 1. 质量枚举常量(保持不变)
const (
BitmapFilterQualityLow = 1 // LOW应用1次滤镜
@@ -20,23 +22,33 @@ const (
colorMax = 0xFFFFFF // 颜色值最大值0xRRGGBB
)
// GlowFilterDefault 默认值与目标JSON完全匹配的常量
var GlowFilterDefault = GlowFilter{
Color: 16777215, // 0xFFFFFF对应JSON的color:16777215
Alpha: 0.8, // 对应JSON的alpha:0.8
BlurX: 10, // 对应JSON的blurX:10
BlurY: 10, // 对应JSON的blurY:10
Strength: 8, // 对应JSON的strength:8
Quality: 2, // 对应JSON的quality:2
Inner: true, // 对应JSON的inner:true
Knockout: false, // JSON默认false
ColorMatrixFilter: [20]float32{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, // 对应JSON的matrix数组
Level: 1, // 对应JSON的level:"1"转uint8
func GetDef() GlowFilter {
ret := GlowFilter{
// Color: 16777215, // 0xFFFFFF对应JSON的color:16777215
Alpha: 0.1, // 光圈大小,透明度
BlurX: 8, // 局外光圈大小
BlurY: 8, // 局外光圈大小
Strength: 8, // 颜色对比度
Quality: 1, // 背包内光圈大小
Inner: true, // 对应JSON的inner:true
Knockout: false, // JSON默认false
ColorMatrixFilter: [20]float32{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, // 对应JSON的matrix数组
Level: 2, // 对应JSON的level:"1"转uint8
}
ret.Color = RandomRGBToUint32()
return ret
}
func GetDef() GlowFilter {
return GlowFilterDefault
// RandomRGBToUint32 生成随机RGB颜色并转为uint32格式0x00RRGGBB最高8位留空
func RandomRGBToUint32() uint32 {
// 生成0-255的随机R/G/B分量
r := uint32(grand.Intn(256))
g := uint32(grand.Intn(256))
b := uint32(grand.Intn(256))
// 位拼接R左移16位G左移8位B不位移组合成uint32
return (r << 16) | (g << 8) | b
}
// 精灵加shinylen字段

View File

@@ -71,10 +71,10 @@ func (s *ShinyService) RandShiny(id uint32) *data.GlowFilter {
if len(ret) == 0 {
return nil
}
r := model.GenerateRandomOffspringMatrix()
var t = data.GetDef()
t.ColorMatrixFilter = r.Get()
t.ColorMatrixFilter = model.GenerateRandomOffspringMatrix().Get()
return &t
}