summaryrefslogtreecommitdiffstats
path: root/htmlimg.go
blob: 332bc695d713cf2418c1001be5e425f208a04457 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Package htmlimg produces base64-encoded HTML <img> tags.
//
//	<img src="data:image/png;base64,iVBORw...">
package htmlimg

import (
	"bytes"
	"encoding/base64"
	"html/template"
	"image"
	"image/png"
)

// Encode PNG- and then base64-encodes img and returns it embedded in an
// HTML <img> tag.
func Encode(m image.Image) (template.HTML, error) {
	pngBuf := new(bytes.Buffer)
	if err := png.Encode(pngBuf, m); err != nil {
		return "", err
	}
	b64 := base64.StdEncoding.EncodeToString(pngBuf.Bytes())
	return template.HTML(`<img src="data:image/png;base64,` + b64 + `">`), nil
}