From b4570c5961553fdfab63b22fed5b8695a3ae3a2c Mon Sep 17 00:00:00 2001 From: keven1024 Date: Sun, 8 Mar 2026 12:21:02 +0800 Subject: [PATCH] fix: update image conversion logic to handle JPG format by flattening transparent PNGs to a white background --- worker/internal/services/image.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/worker/internal/services/image.go b/worker/internal/services/image.go index b72ef24..a970213 100644 --- a/worker/internal/services/image.go +++ b/worker/internal/services/image.go @@ -48,7 +48,14 @@ func ConvertImageWithMagick(filePath, mimeType, targetExt string) (string, error outputPath := filePath + "_converted." + targetExt - _, err := utils.RunCommand("magick", filePath, outputPath) + // JPG 不支持透明通道,透明 PNG 转 JPG 前需压平到背景色(白底),否则透明处会变黑 + args := []string{filePath} + if lo.Contains([]string{"jpg", "jpeg"}, targetExt) { + args = append(args, "-background", "white", "-flatten") + } + args = append(args, outputPath) + + _, err := utils.RunCommand("convert", args...) if err != nil { return "", err }