图像 blob 到 base64

标签 image go base64 blob

我试图从数据库中读取一个 blob 并将其作为 base64 图像显示给浏览器(我认为这是显示它的唯一方法)

我的代码如下

    rows, err := database.Conn.Query("SELECT a.id, a.name, a.creationdata, b.logo, c.name FROM guilds a, cloaka_guilds b, players c WHERE a.ownerid = c.id AND b.guild_id = a.id ORDER BY creationdata DESC")
    if err != nil {
        return nil, err
    }
    guild_list := []*Guild{}
    for rows.Next() {
        guild := &Guild{}
        rows.Scan(&guild.Id, &guild.Name, &guild.Creationdata, &guild.Logo, &guild.Owner)
        guild.Logo_str = base64.StdEncoding.EncodeToString(guild.Logo)
        guild_list = append(guild_list, guild)
    }
    return guild_list, nil

b.logo 包含图像 [] 字节。我很确定。为了更加确定 IntelliJ IDEA 显示在数据库行上

88x88 Image 1.68K PNG

在浏览器上用类似的东西渲染

<img src="data:image/jpeg;base64,[[ $element.Logo ]]">

但是自从我明白了之后显然有些地方不对

<img src="data:image/jpeg;base64,[137%2080%2078%2071%2013%2010%2026%20.........]">

至于struct guild.Logo是[]byte类型

最佳答案

要将图像呈现为 base64,您不需要 [[ 符号。这是一个 example :

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQV....

here is how it will look .

查看您从数据库中获取的数据。它应该是 byteArray或者你可以转换成 byteArray 的东西。有了 byteArray,您可以使用 base64 对其进行编码:

sEnc := b64.StdEncoding.EncodeToString(byteArr)

看看我的 Go playground 看看我是如何得到上述 base64 图像的。

关于图像 blob 到 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34080015/

相关文章:

jquery - 如何使用 jQuery 隐藏 IE 中损坏的图像?

javascript - Canvas 到图像 src 上的 base64

windows - 什么检测图片类型的方法比较靠谱 : content-type or MIME-sniffing?

iphone - 图像到文本 (iPhone)

image - Swift 3 中的 Firebase 存储图像持久性

Golang SSH 到思科无线 Controller 并运行命令

go - 简单的负载均衡器无法正常工作

database - 如何在Apache Cassandra中正确建模数据以允许通过两个唯一的不同字段进行查询

java - 如何编码(缩短)数字str

android - 图片/jpeg 的 Base64 解码;android 中的 base64