aboutsummaryrefslogtreecommitdiff
path: root/pic/pic.go
diff options
context:
space:
mode:
Diffstat (limited to 'pic/pic.go')
-rw-r--r--pic/pic.go16
1 files changed, 10 insertions, 6 deletions
diff --git a/pic/pic.go b/pic/pic.go
index 7f22edd..f60ba0e 100644
--- a/pic/pic.go
+++ b/pic/pic.go
@@ -7,11 +7,12 @@
package pic // import "golang.org/x/tour/pic"
import (
- "bytes"
+ "bufio"
"encoding/base64"
- "fmt"
"image"
"image/png"
+ "io"
+ "os"
)
// Show displays a picture defined by the function f
@@ -46,11 +47,14 @@ func Show(f func(dx, dy int) [][]uint8) {
// ShowImage displays the image m
// when executed on the Go Playground.
func ShowImage(m image.Image) {
- var buf bytes.Buffer
- err := png.Encode(&buf, m)
+ w := bufio.NewWriter(os.Stdout)
+ defer w.Flush()
+ io.WriteString(w, "IMAGE:")
+ b64 := base64.NewEncoder(base64.StdEncoding, w)
+ err := (&png.Encoder{CompressionLevel: png.BestCompression}).Encode(b64, m)
if err != nil {
panic(err)
}
- enc := base64.StdEncoding.EncodeToString(buf.Bytes())
- fmt.Println("IMAGE:" + enc)
+ b64.Close()
+ io.WriteString(w, "\n")
}