mirror of
https://github.com/golang/go
synced 2024-09-30 11:28:36 -06:00
image/png: allow tRNS chunk without a PLTE chunk.
While https://www.w3.org/TR/PNG/#5ChunkOrdering says that tRNS's ordering constraint is "After PLTE; before IDAT", it is legal for a tRNS chunk to occur without a PLTE chunk at all, for greyscale and truecolor transparency as opposed to palette-based transparency. See https://www.w3.org/TR/PNG/#11transinfo Fixes #17511. Change-Id: I047b0b01d78a1cda65e00eeac229bb972cda431d Reviewed-on: https://go-review.googlesource.com/32139 Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
parent
645e984f39
commit
de4b065591
@ -709,7 +709,11 @@ func (d *decoder) parseChunk() error {
|
||||
d.stage = dsSeenPLTE
|
||||
return d.parsePLTE(length)
|
||||
case "tRNS":
|
||||
if d.stage != dsSeenPLTE {
|
||||
if cbPaletted(d.cb) {
|
||||
if d.stage != dsSeenPLTE {
|
||||
return chunkOrderError
|
||||
}
|
||||
} else if d.stage != dsSeenIHDR {
|
||||
return chunkOrderError
|
||||
}
|
||||
d.stage = dsSeentRNS
|
||||
|
Loading…
Reference in New Issue
Block a user