summaryrefslogtreecommitdiff
path: root/libgo/go/image/png/writer.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/image/png/writer.go')
-rw-r--r--libgo/go/image/png/writer.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/libgo/go/image/png/writer.go b/libgo/go/image/png/writer.go
index df23270ee97..dd87d816291 100644
--- a/libgo/go/image/png/writer.go
+++ b/libgo/go/image/png/writer.go
@@ -420,8 +420,11 @@ func writeImage(w io.Writer, m image.Image, cb int, level int) error {
}
// Apply the filter.
+ // Skip filter for NoCompression and paletted images (cbP8) as
+ // "filters are rarely useful on palette images" and will result
+ // in larger files (see http://www.libpng.org/pub/png/book/chapter09.html).
f := ftNone
- if level != zlib.NoCompression {
+ if level != zlib.NoCompression && cb != cbP8 {
f = filter(&cr, pr, bpp)
}