我已经尝试过在stackoverflow中找到的所有方法。这两个是一些最完整的帖子:
Display image from blob using javascript and websockets
How can you encode a string to Base64 in JavaScript?
我正在使用cloudinary和id3js。首先我将mp3文件上传到 cloudinary,然后我通过id3js用Ajax请求文件。这个 给了我所有的ID3标签。
openUploadModal() {
cloudinary.openUploadWidget(window.cloudinaryOptions,
(errors, track) => {
if(!values(errors).length) {
id3(track[0].secure_url, (errs, tags) => {
this.setState({
title: tags.title,
audio_url: track[0].secure_url,
artist: tags.artist,
uploaded: true,
cover_photo: this.getImage(tags.v2.image)
});
});
}
});
}
图像转换器:
getImage(image) {
var arrayBuffer = image.data;
var bytes = new Uint8Array(arrayBuffer);
return "data:image/png;base64,"+btoa(unescape(encodeURIComponent(bytes)));
}
这是标签对象的样子:
然后我在div的background-image属性中使用getImage的返回值。控制台中没有错误(不是错误的请求),但打开数据时:image / jpg; base64,...链接页面上只有一个小白方块。
如何从ID3代码中的图像对象获取工作网址?
答案 0 :(得分:0)
如果DateTime dt = Convert.ToDateTime(someDate, CultureInfo.InvariantCulture);
是image.data
,您可以使用ArrayBuffer
。 FileReader
FileReader
事件是异步的,您不能在不使用load
的情况下从函数返回结果,但您可以在Promise
使用FileReaderSync()
。
另见createImageBitmap alternative on Safari。
Worker