从图像中获取像素颜色

时间:2013-07-22 13:38:44

标签: javascript image pixel

我在浏览器上有一张图片。

我想得到图像颜色的左上角像素(坐标为:0,0),无论图像是否旋转。

我怎么能用javascript或php代码呢?

2 个答案:

答案 0 :(得分:41)

  • 创建画布document.createElement
  • 获取第2个上下文canvas.getContext('2d')
  • 将图片绘制到画布context.drawImage(image, x, y)
    • 确保图片来自同一个域,否则您将无法访问其像素
  • 获取图片的像素数据context.getImageData(x1, y1, x2, y2)
    • 您只想左上角context.getImageData(0, 0, 1, 1)
  • getImageData的结果将包含data字段(context.getImageData(0,0,1,1).data中的像素数组
    • 数组将包含rgba值。

答案 1 :(得分:15)

对于浏览器上的图像,除非可以先将图像传输到服务器,否则不能使用PHP。

在浏览器中,如果您可以在canvas中绘制图像,则可以使用getImageData()方法:

var myImg = new Image();
myImg.src = 'image.jpg';
var context = document.getElementById('canvas').getContext('2d');
context.drawImage(myImg, 0, 0);
var data = context.getImageData(x, y, 1, 1).data;

你必须允许任何轮换 - 大概你知道已经应用了什么轮换。