github.com/dolotech/hongbao@v0.0.0-20191130105438-fd59d7a5dda5/src/utils/imgo/encode.go (about) 1 package imgo 2 3 import ( 4 "bytes" 5 "encoding/base64" 6 "image" 7 "image/png" 8 "io/ioutil" 9 ) 10 11 //Img2Base64 produce a base64 string from a image file. 12 func Img2Base64(filepath string) (encodeString string, err error) { 13 data, err := ioutil.ReadFile(filepath) 14 if err != nil { 15 return 16 } 17 encodeString = base64.StdEncoding.EncodeToString(data) 18 return 19 } 20 21 //Base64ToImg create a image file named dstFile from base64 encodeString. 22 func Base64ToImg(encodeString string, dstFile string) error { 23 data, err := base64.StdEncoding.DecodeString(encodeString) 24 if err != nil { 25 return err 26 } 27 err2 := ioutil.WriteFile(dstFile, data, 0666) 28 if err2 != nil { 29 return err2 30 } 31 return nil 32 } 33 34 //Img2base64ByGoImage produce a base64 string from Image interface. 35 func Img2Base64ByGoImage(img image.Image) (encodeString string, err error) { 36 var w bytes.Buffer 37 encodeErr := png.Encode(&w, img) 38 if encodeErr != nil { 39 return "", encodeErr 40 } 41 42 encodeString = base64.StdEncoding.EncodeToString(w.Bytes()) 43 return 44 }