Skip to content

Instantly share code, notes, and snippets.

@mh-cbon
Last active November 4, 2016 15:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mh-cbon/2bd43c72938e2522a0188f13f7eb854e to your computer and use it in GitHub Desktop.
Save mh-cbon/2bd43c72938e2522a0188f13f7eb854e to your computer and use it in GitHub Desktop.
// data url decoding to png
package main
import (
"fmt"
"bytes"
"github.com/vincent-petithory/dataurl"
"image/png"
)
var b64 string = `data:image/png;base64,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`
func main () {
dataURL, err := dataurl.DecodeString(b64)
if err!=nil {
panic(err)
}
var b bytes.Buffer
b.Write(dataURL.Data)
config, err := png.DecodeConfig(&b)
if err!=nil {
fmt.Println(err)
} else {
fmt.Println("Got config")
fmt.Printf("%#v\n", config)
}
b.Truncate(0)
b.Write(dataURL.Data)
img, err := png.Decode(&b)
if err!=nil {
fmt.Println(err)
} else {
fmt.Println("Got image")
fmt.Printf("%#v\n", img)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment