tiff: don't apply the 8 bps predictor to a 1 bps image.
Change-Id: I112fc7189f8afdd54b96562e1989f9fca1d24d68 Reviewed-on: https://go-review.googlesource.com/11135 Reviewed-by: Benny Siegert <bsiegert@gmail.com> Reviewed-by: Nigel Tao <nigeltao@golang.org>
This commit is contained in:
parent
3157439762
commit
9af7e1b58b
|
@ -216,7 +216,8 @@ func (d *decoder) decode(dst image.Image, xmin, ymin, xmax, ymax int) error {
|
||||||
// In this case, p contains the color difference to the preceding pixel.
|
// In this case, p contains the color difference to the preceding pixel.
|
||||||
// See page 64-65 of the spec.
|
// See page 64-65 of the spec.
|
||||||
if d.firstVal(tPredictor) == prHorizontal {
|
if d.firstVal(tPredictor) == prHorizontal {
|
||||||
if d.bpp == 16 {
|
switch d.bpp {
|
||||||
|
case 16:
|
||||||
var off int
|
var off int
|
||||||
n := 2 * len(d.features[tBitsPerSample]) // bytes per sample times samples per pixel
|
n := 2 * len(d.features[tBitsPerSample]) // bytes per sample times samples per pixel
|
||||||
for y := ymin; y < ymax; y++ {
|
for y := ymin; y < ymax; y++ {
|
||||||
|
@ -231,7 +232,7 @@ func (d *decoder) decode(dst image.Image, xmin, ymin, xmax, ymax int) error {
|
||||||
off += 2
|
off += 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
case 8:
|
||||||
var off int
|
var off int
|
||||||
n := 1 * len(d.features[tBitsPerSample]) // bytes per sample times samples per pixel
|
n := 1 * len(d.features[tBitsPerSample]) // bytes per sample times samples per pixel
|
||||||
for y := ymin; y < ymax; y++ {
|
for y := ymin; y < ymax; y++ {
|
||||||
|
@ -244,6 +245,8 @@ func (d *decoder) decode(dst image.Image, xmin, ymin, xmax, ymax int) error {
|
||||||
off++
|
off++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
case 1:
|
||||||
|
return UnsupportedError("horizontal predictor with 1 BitsPerSample")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user