From 053ca32a142f334f5ffed34f3b550d04b27d6084 Mon Sep 17 00:00:00 2001 From: Victor_Jay Date: Wed, 27 May 2026 01:10:29 +0800 Subject: [PATCH] =?UTF-8?q?fix(avatar):=20WebP=20=E8=A7=A3=E7=A0=81?= =?UTF-8?q?=E6=9C=AA=E7=94=9F=E6=95=88=20=E2=80=94=20image.Decode=20?= =?UTF-8?q?=E4=B8=8D=E6=94=AF=E6=8C=81=20WebP=EF=BC=8C=E6=94=B9=E7=94=A8?= =?UTF-8?q?=20webp.Decode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/service/avatar_service.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/service/avatar_service.go b/internal/service/avatar_service.go index 043fdbd..2a6bb15 100644 --- a/internal/service/avatar_service.go +++ b/internal/service/avatar_service.go @@ -67,8 +67,14 @@ func (s *AvatarService) ProcessAvatar(userID uint, file io.Reader, contentType s return "", fmt.Errorf("文件大小不能超过 5MB") } - // 3. 解码图片 - img, _, err := image.Decode(bytes.NewReader(data)) + // 3. 解码图片(WebP 需显式调用 webp.Decode,Go 标准库不含 WebP 解码器) + var img image.Image + switch contentType { + case "image/webp": + img, err = webp.Decode(bytes.NewReader(data)) + default: + img, _, err = image.Decode(bytes.NewReader(data)) + } if err != nil { return "", fmt.Errorf("图片解码失败:%v", err) }