无法将图像数据URI转换为像素数据数组

时间:2016-01-28 06:22:55

标签: javascript html5 canvas base64 data-uri

我想在不使用html5画布的情况下将base64数据库转换为图像数据。为此,我写了以下代码 // Here i have converted datauri to base64 var b64 = datauri.slice(exifModified.indexOf(',')+1); // here i have converted base64 to string var str = atob(b64); // here i have converted string to array var arr = str.split('').map(function (e) {return e.charCodeAt(0);}); // here i have created uint8clampedarray var u = new Uint8ClampedArray(arr); // [255, 56, 201, 8] // here i have created image data by using uint8clampedarray var data = new ImageData(u,1000,1000);
但我无法创建图像数据。我收到以下错误。
Failed to construct 'ImageData': The input data byte length is not a multiple of 4.
我观察到这里uint8clampedarray长度不是4的倍数,即2163747 谁能知道为什么uint8clampedarray lenght不是4的倍数请告诉我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

因为dataURI确实代表文件(压缩),而不是像素数据。