Files
bl/common/data/color.go
昔念 24f83c0284
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
2026-02-28 22:31:33 +08:00

90 lines
3.6 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package data
import "github.com/gogf/gf/v2/util/grand"
// 1. 质量枚举常量(保持不变)
const (
BitmapFilterQualityLow = 1 // LOW应用1次滤镜
BitmapFilterQualityMedium = 2 // MEDIUM应用2次滤镜
BitmapFilterQualityHigh = 3 // HIGH应用3次滤镜最大值
)
// 2. 调整取值范围常量为 uint8 类型(贴合 0-255 范围)
const (
alphaMin = 0.0
alphaMax = 1.0
blurMin uint8 = 0 // BlurX/BlurY 最小值
blurMax uint8 = 255 // BlurX/BlurY 最大值uint8上限
strengthMin uint8 = 0 // Strength 最小值
strengthMax uint8 = 255 // Strength 最大值uint8上限
qualityMin = BitmapFilterQualityLow
qualityMax = BitmapFilterQualityHigh
colorMax = 0xFFFFFF // 颜色值最大值0xRRGGBB
)
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
}
// 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字段
// 3. 核心结构体BlurX/BlurY/Strength 改为 uint8
type GlowFilter struct {
// Color 光晕颜色,十六进制格式 0xRRGGBB默认值 0xFF0000红色
Color uint32 `json:"color,omitempty"`
// Alpha 透明度0.0~1.0浮点型无法用uint8保留float64
Alpha float32 `json:"alpha,omitempty"`
// BlurX 水平模糊量0~255uint8默认值 6
BlurX uint8 `json:"blurX,omitempty"`
// BlurY 垂直模糊量0~255uint8默认值 6
BlurY uint8 `json:"blurY,omitempty"`
// Strength 发光强度0~255uint8默认值 2
Strength uint8 `json:"strength,omitempty"`
// Quality 滤镜应用次数1~3默认值 1
Quality int `json:"quality,omitempty"`
// Inner 是否内侧发光,默认 false
Inner bool `json:"inner,omitempty"`
// Knockout 是否挖空,默认 false
Knockout bool `json:"knockout,omitempty"`
ColorMatrixFilter [20]float32 `json:"matrix,omitempty"`
Level uint8 `json:"level,omitempty"` //等级
}
// ItemInfo
// 用于表示发放物品的信息
type ItemInfo struct {
ItemId int64 `struc:"uint32"`
ItemCnt int64 `struc:"uint32"`
}