feat(提升性能): 更快的加载图片
build.yaml / build (push) Successful in 38s

This commit is contained in:
2026-07-13 16:17:08 +08:00
parent 19ba4562a1
commit 1004781aed
2 changed files with 17 additions and 0 deletions
+13
View File
@@ -21,6 +21,7 @@ import (
"image"
"image/color"
canvas_image "github.com/tdewolff/canvas/image"
_ "github.com/xiaoqidun/jbig2"
_ "golang.org/x/image/bmp"
)
@@ -29,6 +30,18 @@ import (
// 入参: data 图片数据
// 返回: image.Image 图片对象, string 图片格式, error 错误信息
func decodeImageData(data []byte) (image.Image, string, error) {
if _, format, err := image.DecodeConfig(bytes.NewReader(data)); err == nil {
switch format {
case "jpeg":
if img, err := canvas_image.NewJPEGImage(bytes.NewReader(data)); err == nil {
return img, format, nil
}
case "png":
if img, err := canvas_image.NewPNGImage(bytes.NewReader(data)); err == nil {
return img, format, nil
}
}
}
img, format, err := image.Decode(bytes.NewReader(data))
if err == nil {
return img, normalizeSealType(format), nil
+4
View File
@@ -19,6 +19,7 @@ import (
"image/color"
"github.com/tdewolff/canvas"
canvas_image "github.com/tdewolff/canvas/image"
)
// renderImage 渲染图片
@@ -112,6 +113,9 @@ func imageWithTransparentEdge(img image.Image) (image.Image, int) {
if w == 0 || h == 0 {
return img, 0
}
if src, ok := img.(*canvas_image.Image); ok && src.Mimetype == "image/jpeg" && src.Mask == nil {
return img, 0
}
if opaque, ok := img.(interface{ Opaque() bool }); ok && opaque.Opaque() {
return img, 0
}