繁体   English   中英

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

[英]Is data:image/png;base64 the only base64 encoding for the img tag?

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

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

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

对,他们是:

数据:图像/ GIF

数据:图像/ JPG

等等...

而不仅仅是图像:

数据:text / html的

格式如下

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

请点击这里https://en.wikipedia.org/wiki/Data_URI_scheme

http://dataurl.net/#about

不,您可以使用gifjpg或浏览器读取的任何类型的图像。 例如:

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

异步/等待版本

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM