go-libwebp

Experimental translation from libwebp to Go source.
Log | Files | Refs | README | LICENSE

commit 9881b32bd1cda8b6dac428b03eadedeb276baadf
parent 2c27660c379f4dc04d54852fccc8f883b0fdef72
Author: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Date:   Thu, 19 Oct 2023 16:44:40 +0800

webp/encode: [perf] special-case *RGBA to avoid conversion penalty

Signed-off-by: Jack Mordaunt <jackmordaunt.dev@gmail.com>

Diffstat:
Mwebp/encode.go | 3+++
1 file changed, 3 insertions(+), 0 deletions(-)

diff --git a/webp/encode.go b/webp/encode.go @@ -58,6 +58,9 @@ func (enc *Encoder) Encode(w io.Writer, m image.Image) error { if enc.Quality <= 0.0 || enc.Quality > 1 { enc.Quality = 1.0 } + if rgba, ok := m.(*image.RGBA); ok { + return enc.encode(w, rgba) + } rgba := image.NewRGBA(m.Bounds()) b := m.Bounds() for y := b.Min.Y; y < b.Max.Y; y++ {