From 2b560f60c2c8e076d12f07c207b4121f87b5df09 Mon Sep 17 00:00:00 2001 From: Albertus Angga Raharja Date: Tue, 16 Jul 2019 16:59:06 +0700 Subject: [PATCH] Return PNG images as it is when JPEG quality is set to 100 --- pkg/processor/native/encoder.go | 2 +- pkg/processor/native/encoder_test.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/processor/native/encoder.go b/pkg/processor/native/encoder.go index d0b7771..9438fd1 100644 --- a/pkg/processor/native/encoder.go +++ b/pkg/processor/native/encoder.go @@ -68,7 +68,7 @@ func (e *Encoders) GetEncoder(img image.Image, ext string) Encoder { return e.jpegEncoder } if ext == "png" { - if isOpaque(img) { + if e.options.JpegQuality != 100 && isOpaque(img) { return e.jpegEncoder } return e.pngEncoder diff --git a/pkg/processor/native/encoder_test.go b/pkg/processor/native/encoder_test.go index 116b414..779b38b 100644 --- a/pkg/processor/native/encoder_test.go +++ b/pkg/processor/native/encoder_test.go @@ -40,8 +40,12 @@ func (s *EncoderSuite) TestEncoders_GetEncoder() { assert.True(s.T(), ok) _, ok = (encoders.GetEncoder(image.Opaque, "jpeg")).(*JpegEncoder) assert.True(s.T(), ok) + encoders.options.JpegQuality = 99 _, ok = (encoders.GetEncoder(image.Opaque, "png")).(*JpegEncoder) assert.True(s.T(), ok) + encoders.options.JpegQuality = 100 + _, ok = (encoders.GetEncoder(image.Opaque, "png")).(*PngEncoder) + assert.True(s.T(), ok) _, ok = (encoders.GetEncoder(image.Transparent, "png")).(*PngEncoder) assert.True(s.T(), ok) _, ok = (encoders.GetEncoder(image.Black, "unknown")).(*NopEncoder)