将图像src数据转换为Uint8Array

时间:2015-03-01 17:43:39

标签: javascript

我想使用(pica library)进行图像调整大小,但是它要求我输入Uint8Array并且我只有一个带有

的Image对象
src = 'data:image/jpeg;base64,/9j/4AAQ...'

我不知道怎么把它变成Uint8Array,有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:2)

您需要将图像应用到画布并使用getImageData()

以下是一个如何完成的简单示例:

//create canvas, set base64 test img
var canvas = document.createElement('canvas'),
    ctx = canvas.getContext('2d'),
    base64 = 'data:image/jpeg;base64...'; //base64 string

//size canvas
canvas.width = 34,
canvas.height = 34;

//create image, set src to base64 and onload draw to canvas
var image = new Image();
image.onload = (function(canvas, ctx){
    return function(){
        ctx.drawImage(this, 0, 0);

        //now we can finally get a Uint8ClampedArray
        var imageData = ctx.getImageData(0, 0, 34, 34);
        console.log(imageData.data);
    };
})(canvas, ctx);
image.src = base64;

jsfiddle