]> Cypherpunks repositories - gostls13.git/commit
image/png: don't read filter bytes for empty interlace passes.
authorNigel Tao <nigeltao@golang.org>
Sun, 12 Jul 2015 11:02:13 +0000 (21:02 +1000)
committerNigel Tao <nigeltao@golang.org>
Mon, 13 Jul 2015 06:40:00 +0000 (06:40 +0000)
commitca6ba492690135647443817ba0d3ccb0c2f0de14
tree60d2ab405bdc32036525ef96bf3d7c27ef813724
parent616cb3c0eadada458358d69b1098a5aea9165099
image/png: don't read filter bytes for empty interlace passes.

Fixes #11604

The gray-gradient.png image was created by a Go program:

----
package main

import (
"image"
"image/color"
"image/png"
"log"
"os"
)

func main() {
f, err := os.Create("a.png")
if err != nil {
log.Fatal(err)
}
defer f.Close()
m := image.NewGray(image.Rect(0, 0, 1, 16))
for i := 0; i < 16; i++ {
m.SetGray(0, i, color.Gray{uint8(i * 0x11)})
}
err = png.Encode(f, m)
if err != nil {
log.Fatal(err)
}
}
----

The equivalent gray-gradient.interlaced.png image was created via ImageMagick:
$ convert -interlace PNG gray-gradient.png gray-gradient.interlaced.png

As a sanity check:
$ file gray-gradient.*
gray-gradient.interlaced.png: PNG image data, 1 x 16, 4-bit grayscale, interlaced
gray-gradient.png:            PNG image data, 1 x 16, 8-bit grayscale, non-interlaced

Change-Id: I7700284f74d1ea30073aede3bce4d7651787bdbc
Reviewed-on: https://go-review.googlesource.com/12064
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/image/png/reader.go
src/image/png/reader_test.go
src/image/png/testdata/gray-gradient.interlaced.png [new file with mode: 0644]
src/image/png/testdata/gray-gradient.png [new file with mode: 0644]