如何通过Base64编码获取图片的宽度与高度?
获取Base64图片的宽高
你的代码逻辑本身没问题,但大概率是imageData格式不正确,或是缺少错误处理导致无法定位问题。
常见问题及修正方案:
- Base64字符串缺少必要前缀:必须以
data:image/[格式];base64,开头(例如data:image/png;base64,),否则浏览器无法识别为图片资源。 - 未处理加载失败场景:如果Base64损坏或格式错误,原代码不会给出任何提示,容易误以为逻辑失效。
修正后的代码:
const img = new Image(); img.onload = function() { alert(`${this.width}, ${this.height}`); }; img.onerror = function() { alert('图片加载失败,请检查Base64格式是否正确'); }; // 确保imageData包含正确前缀,示例: // img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg=='; img.src = imageData;
额外说明:
- 如果你的
imageData是纯Base64编码内容(不带前缀),需要手动拼接对应格式的前缀,比如data:image/jpeg;base64,或data:image/png;base64,。 - 图片加载是异步操作,必须在
onload回调内获取宽高,不能在设置src后直接读取width和height属性。
内容的提问来源于stack exchange,提问作者user21078390
相关产品推荐
相关产品推荐

