我有一个base64编码的PNG图片。我需要使用JavaScript获取像素颜色。我认为我需要将它转换回普通的PNG图片。 有没有人能指点我正确的方向?
我有一个base64编码的PNG图片。我需要使用JavaScript获取像素颜色。我认为我需要将它转换回普通的PNG图片。 有没有人能指点我正确的方向?
使用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;
toString(16)
或类似的方法单独转换每个通道即可。 - Matthew Crumley