我想在不使用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的倍数请告诉我。提前谢谢。
答案 0 :(得分:0)
因为dataURI确实代表文件(压缩),而不是像素数据。