feat(优化性能): 继续优化性能
build.yaml / build (push) Successful in 34s

This commit is contained in:
2026-07-14 00:24:48 +08:00
parent 8a68014262
commit 08b801d351
2 changed files with 77 additions and 18 deletions
+22 -10
View File
@@ -30,16 +30,14 @@ 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 := canvasimage.NewJPEGImage(bytes.NewReader(data)); err == nil {
return img, format, nil
}
case "png":
if img, err := canvasimage.NewPNGImage(bytes.NewReader(data)); err == nil {
return img, format, nil
}
if isJPEGData(data) {
if img, err := canvasimage.NewJPEGImage(bytes.NewReader(data)); err == nil {
return img, "jpeg", nil
}
}
if isPNGData(data) {
if img, err := canvasimage.NewPNGImage(bytes.NewReader(data)); err == nil {
return img, "png", nil
}
}
img, format, err := image.Decode(bytes.NewReader(data))
@@ -52,6 +50,20 @@ func decodeImageData(data []byte) (image.Image, string, error) {
return nil, "", err
}
// isJPEGData 判断是否为JPEG图片数据
// 入参: data 图片数据
// 返回: bool 是否为JPEG图片数据
func isJPEGData(data []byte) bool {
return len(data) >= 2 && data[0] == 0xFF && data[1] == 0xD8
}
// isPNGData 判断是否为PNG图片数据
// 入参: data 图片数据
// 返回: bool 是否为PNG图片数据
func isPNGData(data []byte) bool {
return bytes.HasPrefix(data, []byte("\x89PNG\r\n\x1a\n"))
}
// decodeImageConfigData 解码图片尺寸
// 入参: data 图片数据
// 返回: image.Config 图片尺寸, string 图片格式, error 错误信息