Browse Source

Add the webp image type

pull/2217/head
byunghwa.yun 3 years ago
parent
commit
2595f269d1
  1. 5
      weed/images/resizing.go
  2. 23
      weed/images/resizing_test.go
  3. BIN
      weed/images/sample2.webp

5
weed/images/resizing.go

@ -11,6 +11,8 @@ import (
"github.com/disintegration/imaging" "github.com/disintegration/imaging"
"github.com/chrislusf/seaweedfs/weed/glog" "github.com/chrislusf/seaweedfs/weed/glog"
_ "golang.org/x/image/webp"
) )
func Resized(ext string, read io.ReadSeeker, width, height int, mode string) (resized io.ReadSeeker, w int, h int) { func Resized(ext string, read io.ReadSeeker, width, height int, mode string) (resized io.ReadSeeker, w int, h int) {
@ -47,6 +49,9 @@ func Resized(ext string, read io.ReadSeeker, width, height int, mode string) (re
jpeg.Encode(&buf, dstImage, nil) jpeg.Encode(&buf, dstImage, nil)
case ".gif": case ".gif":
gif.Encode(&buf, dstImage, nil) gif.Encode(&buf, dstImage, nil)
case ".webp":
// Webp does not have golang encoder.
png.Encode(&buf, dstImage)
} }
return bytes.NewReader(buf.Bytes()), dstImage.Bounds().Dx(), dstImage.Bounds().Dy() return bytes.NewReader(buf.Bytes()), dstImage.Bounds().Dx(), dstImage.Bounds().Dy()
} else { } else {

23
weed/images/resizing_test.go

@ -0,0 +1,23 @@
package images
import (
"bytes"
"io/ioutil"
"os"
"testing"
)
func TestResizing(t *testing.T) {
fname := "sample2.webp"
dat, _ := ioutil.ReadFile(fname)
resized, _, _ := Resized(".webp", bytes.NewReader(dat), 100, 30, "")
buf := new(bytes.Buffer)
buf.ReadFrom(resized)
ioutil.WriteFile("resized1.png", buf.Bytes(), 0644)
os.Remove("resized1.png")
}

BIN
weed/images/sample2.webp

Loading…
Cancel
Save