base64.StdEncoding.Encode(dst []byte,src []byte)

这个的意思是把src压成base64 存储在dst

你这buffstore和dist都是空byte组,然encode到了buffstore,但是写文件你却用了dist,dist根本就没赋值啊。。

ddd, _ := base64.StdEncoding.DecodeString("test.jpg.txt")

你这句话是把test.jpg.txt这个字符串解base64 ,并不是test.jpg.txt文件的内容解base64,所以写进去的当然不是图片了。

package main

import (

"encoding/base64"

"io/ioutil"

"os"

)

func main() {

//读原图片

ff, _ := os.Open("a.png")

defer ff.Close()

sourcebuffer := make([]byte, 500000)

n, _ := ff.Read(sourcebuffer)

//base64压缩

sourcestring := base64.StdEncoding.EncodeToString(sourcebuffer[:n])

//写入临时文件

ioutil.WriteFile("a.png.txt", []byte(sourcestring), 0667)

//读取临时文件

cc, _ := ioutil.ReadFile("a.png.txt")

//解压

dist, _ := base64.StdEncoding.DecodeString(string(cc))

//写入新文件

f, _ := os.OpenFile("b.png", os.O_RDWR|os.O_CREATE, os.ModePerm)

defer f.Close()

f.Write(dist)

}

这样子就好了。

方法用错了不少啊。^_^

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐