From bfcc7c72ace85464b957ff76c3d8deddd26b8d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Ho=CC=88gborg?= Date: Fri, 17 Jul 2015 12:48:13 +0200 Subject: [PATCH] write output as jpeg as option --- gopow.go | 2 +- internal/gopow/gopow.go | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gopow.go b/gopow.go index 45e9da7..a14111d 100644 --- a/gopow.go +++ b/gopow.go @@ -66,7 +66,7 @@ func main() { cli.StringFlag{ Name: "format,f", Value: "png", - Usage: "Output file format, default png", + Usage: "Output file format, default png [png,jpeg]", }, cli.BoolFlag{ Name: "verbose", diff --git a/internal/gopow/gopow.go b/internal/gopow/gopow.go index f0dad79..e0c8fd6 100644 --- a/internal/gopow/gopow.go +++ b/internal/gopow/gopow.go @@ -3,6 +3,7 @@ package gopow import ( "fmt" "image" + "image/jpeg" "image/png" "os" "time" @@ -108,7 +109,22 @@ func (g *GoPow) Write() error { return err } - err = png.Encode(out, g.image) + switch g.config.Format { + case "png": + err = png.Encode(out, g.image) + break + + case "jpeg", "jpg": + opt := &jpeg.Options{ + Quality: 98, + } + err = jpeg.Encode(out, g.image, opt) + break + + default: + return fmt.Errorf("unsupported format: %s", g.config.Format) + } + if err != nil { return err }