Skip to content

Commit

Permalink
Merge pull request #7 from adalberht/return-png-images-as-it-is-when-…
Browse files Browse the repository at this point in the history
…jpeg-quality-is-set-to-100

Return PNG images as it is when JPEG quality is set to 100
  • Loading branch information
Albertus Angga Raharja authored Jul 16, 2019
2 parents 1ffa16b + a816634 commit 7f6483a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pkg/processor/native/encoder.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 10 additions & 0 deletions pkg/processor/native/encoder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,24 @@ func TestNewEncoders(t *testing.T) {

func (s *EncoderSuite) TestEncoders_GetEncoder() {
encoders := NewEncoders(DefaultCompressionOptions)

_, ok := (encoders.GetEncoder(s.opaqueImage, "jpg")).(*JpegEncoder)
assert.True(s.T(), ok)

_, ok = (encoders.GetEncoder(s.opaqueImage, "jpeg")).(*JpegEncoder)
assert.True(s.T(), ok)

encoders.options.JpegQuality = 99
_, ok = (encoders.GetEncoder(s.opaqueImage, "png")).(*JpegEncoder)
assert.True(s.T(), ok)

encoders.options.JpegQuality = 100
_, ok = (encoders.GetEncoder(s.opaqueImage, "png")).(*PngEncoder)
assert.True(s.T(), ok)

_, ok = (encoders.GetEncoder(s.transparentImage, "png")).(*PngEncoder)
assert.True(s.T(), ok)

_, ok = (encoders.GetEncoder(image.Black, "unknown")).(*NopEncoder)
assert.True(s.T(), ok)
}
Expand Down

0 comments on commit 7f6483a

Please sign in to comment.