diff --git a/internal/common/transparent_to_white.go b/internal/common/transparent_to_white.go index 46d967a..9bdd2fd 100644 --- a/internal/common/transparent_to_white.go +++ b/internal/common/transparent_to_white.go @@ -21,6 +21,18 @@ func ConvertTransparentToWhite(input []byte) ([]byte, error) { return nil, fmt.Errorf("解码图像失败: %v", err) } + switch format { + case "jpeg", "jpg": + // JPEG格式不支持透明通道,直接返回原始数据 + return input, nil + case "png": + // PNG格式需要处理透明通道 + // 继续处理透明通道,将透明部分替换为白色 + break + default: + return nil, fmt.Errorf("unsupported image format: %s", format) + } + // 处理透明通道,将透明部分替换为白色 bounds := img.Bounds() width, height := bounds.Max.X, bounds.Max.Y diff --git a/internal/handler/rm_static.go b/internal/handler/rm_static.go index 96ec233..0454697 100644 --- a/internal/handler/rm_static.go +++ b/internal/handler/rm_static.go @@ -29,6 +29,7 @@ func RMStaticHandler(c iris.Context) { url := strings.Replace(path, "rm-static_djicdn_com", "https://rm-static.djicdn.com", 1) url = strings.Replace(url, "terra-cn-oss-cdn-public-pro_oss-cn-hangzhou_aliyuncs_com", "https://terra-cn-oss-cdn-public-pro.oss-cn-hangzhou.aliyuncs.com", 1) url = strings.Replace(url, "pro-robomasters-hz-n5i3_oss-cn-hangzhou_aliyuncs_com", "https://pro-robomasters-hz-n5i3.oss-cn-hangzhou.aliyuncs.com", 1) + url = strings.Replace(url, "terra-us-pro-rm-prod-pub-us_s3_amazonaws_com", "https://terra-us-pro-rm-prod-pub-us.s3.amazonaws.com", 1) // auto add scheme if !strings.HasPrefix(url, "http") { url = "https://" + url diff --git a/internal/job/job_factory.go b/internal/job/job_factory.go index 21e3a51..74a9c27 100644 --- a/internal/job/job_factory.go +++ b/internal/job/job_factory.go @@ -46,5 +46,6 @@ func replaceRMStatic(data []byte) []byte { str = strings.ReplaceAll(str, "https://rm-static.djicdn.com", "/api/static/rm-static_djicdn_com") str = strings.ReplaceAll(str, "https://terra-cn-oss-cdn-public-pro.oss-cn-hangzhou.aliyuncs.com", "/api/static/terra-cn-oss-cdn-public-pro_oss-cn-hangzhou_aliyuncs_com") str = strings.ReplaceAll(str, "https://pro-robomasters-hz-n5i3.oss-cn-hangzhou.aliyuncs.com", "/api/static/pro-robomasters-hz-n5i3_oss-cn-hangzhou_aliyuncs_com") + str = strings.ReplaceAll(str, "https://terra-us-pro-rm-prod-pub-us.s3.amazonaws.com", "/api/static/terra-us-pro-rm-prod-pub-us_s3_amazonaws_com") return []byte(str) }