Skip to content

Commit 411a08b

Browse files
committed
Optimize
1 parent 835c64f commit 411a08b

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

gif_slice.go

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,25 @@ import (
88

99
// SliceGIF
1010
func SliceGIF(g *gif.GIF) (r []image.Image) {
11-
for _, v := range g.Image {
12-
if len(r) == 0 {
13-
r = append(r, v)
14-
} else {
15-
r = append(r, MergeImage(v, r[len(r)-1]))
16-
}
11+
if len(g.Image) == 0 {
12+
return nil
1713
}
18-
return
14+
r = make([]image.Image, 0, len(g.Image))
15+
r = append(r, g.Image[0])
16+
if len(g.Image) == 1 {
17+
return r
18+
}
19+
20+
for _, v := range g.Image[1:] {
21+
r = append(r, MergeImage(r[len(r)-1], v))
22+
}
23+
return r
1924
}
2025

2126
// MergeImage
2227
func MergeImage(src image.Image, over image.Image) image.Image {
23-
dist := image.NewNRGBA(over.Bounds())
24-
draw.Draw(dist, dist.Bounds(), over, image.ZP, draw.Src)
25-
draw.Draw(dist, dist.Bounds(), src, image.ZP, draw.Over)
28+
dist := image.NewRGBA(src.Bounds())
29+
draw.Draw(dist, dist.Bounds(), src, image.ZP, draw.Src)
30+
draw.Draw(dist, dist.Bounds(), over, image.ZP, draw.Over)
2631
return dist
2732
}

0 commit comments

Comments
 (0)