mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-08-30 12:12:40 +08:00
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user