Closed
Description
There are images which browsers can render but which image/gif chokes on.
The following runs successfully for most gifs:
import (
"fmt"
"image/gif"
"os"
)
const example = "sample.gif"
func main() {
fmt.Println("attempting to read gif")
file, err := os.Open(example)
if err != nil {
fmt.Println("Can't open this file:", err)
return
}
img, err := gif.Decode(file)
if err != nil {
fmt.Println("Can't decode this as a gif:", err)
return
}
_ = img.Bounds()
fmt.Println("gif decoded")
}
But when trying to run it on a particular gif (below), this happens:
$ go run main.go
attempting to read gif
Can't decode this as a gif: gif: not enough image data
Meanwhile, when I run this on another (similar) gif, I get the following:
$ go run main.go
attempting to read gif
Can't decode this as a gif: gif: too much image data
It seems like something might be wrong with these gifs, but browsers are still able to read them, so it seems that image/gif should be able to as well.
Tested with both 1.3 and 1.4.