allow forcing encoding as tiff

This commit is contained in:
Will Norris 2017-08-31 17:03:17 -07:00
parent c1a9dab401
commit 817908938e
3 changed files with 25 additions and 8 deletions

View file

@ -24,8 +24,8 @@ import (
"math"
"github.com/disintegration/imaging"
"golang.org/x/image/tiff" // register tiff format
_ "golang.org/x/image/webp" // register webp format
_ "golang.org/x/image/tiff" // register tiff format
"willnorris.com/go/gifresize"
)
@ -50,6 +50,11 @@ func Transform(img []byte, opt Options) ([]byte, error) {
return nil, err
}
// encode webp and tiff as jpeg by default
if format == "tiff" || format == "webp" {
format = "jpeg"
}
if opt.Format != "" {
format = opt.Format
}
@ -65,7 +70,7 @@ func Transform(img []byte, opt Options) ([]byte, error) {
if err != nil {
return nil, err
}
case "jpeg", "webp", "tiff": // default to encoding webp & tiff as jpeg
case "jpeg":
quality := opt.Quality
if quality == 0 {
quality = defaultQuality
@ -82,6 +87,12 @@ func Transform(img []byte, opt Options) ([]byte, error) {
if err != nil {
return nil, err
}
case "tiff":
m = transformImage(m, opt)
err = tiff.Encode(buf, m, &tiff.Options{tiff.Deflate, true})
if err != nil {
return nil, err
}
default:
return nil, fmt.Errorf("unsupported format: %v", format)
}