Open yourchanges opened 4 years ago
使用下面代码进行png转webp
func ImgTowebp(imgData []byte) ([]byte, error) { //jpeg.Decode() img, err := jpeg.Decode(bytes.NewBuffer(imgData)) if err != nil { //log.Println("decode error from jpg",err) img, err = png.Decode(bytes.NewBuffer(imgData)) if err != nil { log.Println("decode error from png or jpg", err) return nil, err } } //log.Println(fname) webImgBytes, err := webp.EncodeRGBA(img, 80) if err == nil { webpLength := len(webImgBytes) imgLength := len(imgData) if webpLength > imgLength { log.Println("webp bigger than img") } log.Println("img2webp <webp size>:<img size>", webpLength, ":", imgLength) return webImgBytes, nil } else { log.Println("webp encode jpg file", err) return nil, err } }
对比用cwebp命令行
cwebp -q 80 test.png -o test.png.webp
发现图片的颜色变化明显,排查源代码没有发现明显错误
测试图片:
使用下面代码进行png转webp
对比用cwebp命令行
发现图片的颜色变化明显,排查源代码没有发现明显错误
测试图片: