数据:image / png; base64是img标签唯一的base64编码吗?

时间:2015-09-25 21:43:25

标签: javascript android image base64 png

在Java中使用来自网络的图像编码为base64字符串。我只在img src标签中看过image / png格式,即data:image/png;base64,{eNc0d3d_St!ng...}我还没有看过image / gif或image / jpg。我已经查看了SO并在base 64编码上阅读了一些内容。

此外,我在执行时剥离了Java(Android)中的data:image/png;base64部分 Base64.decode(src, Base64.DEFAULT)所以看起来在那种情况下不需要png。事实上,如果我不剥离这个“标题”,那么BitmapFactory.decodeByteArray将返回null。

所以问题是,网络上的图像编码还有除png以外的其他格式吗?

3 个答案:

答案 0 :(得分:3)

是的,他们是:

数据:图像/ GIF

数据:图像/ JPG

等...

而不仅仅是图片:

数据:text / html的

格式如下

data:[<media type>][;charset=<character set>][;base64],<data>

这里 https://en.wikipedia.org/wiki/Data_URI_scheme

http://dataurl.net/#about

答案 1 :(得分:1)

不,您可以使用gifjpg或浏览器读取的任何类型的图片。 E.g:

<img width="16" height="16" alt="star" src="data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" />

答案 2 :(得分:0)

异步/等待版本

const axios = require("axios");
const response = await axios.get("https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Los_Colorines_4.jpg/320px-Los_Colorines_4.jpg", {
  responseType: "arraybuffer"
});
const base64 = Buffer.from(response.data, 'base64').toString('base64');
const base64ImageUrl = `data:image/gif;base64,${base64}`

演示:https://runkit.com/nickjanssen/axiosbase64image