使用javascript获取Base64 PNG的像素颜色?

时间:2010-08-20 05:00:18

标签: javascript image png base64

我有一个base64编码的PNG。我需要使用javascript获取像素的颜色。我假设我必须将其转换回正常的PNG。 有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:14)

使用base64图像作为源创建Image对象。然后,您可以将图像绘制到画布上,并使用getImageData函数获取像素数据。

这是基本想法(我没有测试过这个):

var image = new Image();
image.onload = function() {
    var canvas = document.createElement('canvas');
    canvas.width = image.width;
    canvas.height = image.height;

    var context = canvas.getContext('2d');
    context.drawImage(image, 0, 0);

    var imageData = context.getImageData(0, 0, canvas.width, canvas.height);

    // Now you can access pixel data from imageData.data.
    // It's a one-dimensional array of RGBA values.
    // Here's an example of how to get a pixel's color at (x,y)
    var index = (y*imageData.width + x) * 4;
    var red = imageData.data[index];
    var green = imageData.data[index + 1];
    var blue = imageData.data[index + 2];
    var alpha = imageData.data[index + 3];
};
image.src = base64EncodedImage;