Jimp返回错误MIME类型:解析位图提示不支持audio/mpeg
解决Jimp解析位图时出现"Unsupported MIME type: audio/mpeg"的问题
问题原因
你传入的mapbitmap对应的base64数据,被Jimp识别成了音频格式(audio/mpeg),说明要么这个base64本身就是音频文件的编码,要么数据格式存在问题,导致Jimp误判。
解决步骤
检查
mapbitmap的内容
正常图片的base64开头会带data:image/xxx;base64,的前缀(xxx是png、jpeg等格式),如果没有前缀,Jimp会通过文件头检测类型。你可以先打印前50个字符确认:console.log(mapbitmap.slice(0, 50));如果开头是
data:audio/mpeg;base64,,那说明你拿到的确实是音频数据,得去检查数据来源。确认数据来源
你是从哪里获取mapbitmap的?比如后端接口、本地文件、用户上传?大概率是你获取错了数据,拿到了音频文件的base64而非位图的。手动指定MIME类型(仅当确认数据是图片时)
如果确定mapbitmap是图片的base64,但Jimp识别错误,可以在Jimp.read时手动指定图片类型:var mid = Buffer.from(mapbitmap, 'base64'); // 根据你的图片实际类型修改,比如image/png、image/jpeg var image2 = await Jimp.read(mid, 'image/png');验证base64的有效性
把mapbitmap的内容复制出来,去掉data:image/xxx;base64,前缀后,用img标签测试能不能显示:<img src="data:image/png;base64,你的base64内容">如果显示不出图片,说明数据本身就是错误的,需要重新获取正确的位图base64。
内容的提问来源于stack exchange,提问作者frost
相关产品推荐
相关产品推荐

