From d340fa2dc3076bbb9d4ddc6462740469abc7cf9a Mon Sep 17 00:00:00 2001 From: Milan Nikolic Date: Tue, 17 Jul 2018 14:51:18 +0200 Subject: [PATCH] Allow use of native image/jpeg --- README.md | 2 +- encoder/encode.go | 3 ++- encoder/encode_jpeg.go | 30 ++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 encoder/encode_jpeg.go diff --git a/README.md b/README.md index 4f0e04e..c6de90c 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ or ### Requirements * [OpenCV](http://opencv.org/) (default is version 2.x via [go-opencv](https://github.com/lazywei/go-opencv), use `-tags cv3` for [gocv](https://github.com/hybridgroup/gocv)) -* [libjpeg-turbo](https://www.libjpeg-turbo.org/) +* [libjpeg-turbo](https://www.libjpeg-turbo.org/) (use `-tags jpeg` for native image/jpeg) ### Download diff --git a/encoder/encode.go b/encoder/encode.go index 96b10bb..bd22186 100644 --- a/encoder/encode.go +++ b/encoder/encode.go @@ -1,9 +1,10 @@ +// +build !jpeg + // Package encoder. package encoder import ( "image" - //"image/jpeg" "io" jpeg "github.com/antonini/golibjpegturbo" diff --git a/encoder/encode_jpeg.go b/encoder/encode_jpeg.go new file mode 100644 index 0000000..c7487e6 --- /dev/null +++ b/encoder/encode_jpeg.go @@ -0,0 +1,30 @@ +// +build jpeg + +// Package encoder. +package encoder + +import ( + "image" + "image/jpeg" + "io" +) + +// New returns a new Encoder. +func New(w io.Writer) *Encoder { + return &Encoder{w} +} + +// Encoder struct. +type Encoder struct { + w io.Writer +} + +// Encode encodes image to JPEG. +func (e Encoder) Encode(img image.Image) error { + err := jpeg.Encode(e.w, img, &jpeg.Options{Quality: 75}) + if err != nil { + return err + } + + return nil +}