为了账号安全,请及时绑定邮箱和手机立即绑定

从HTML画布中获取Pixel?

从HTML画布中获取Pixel?

慕雪6442864 2019-07-13 09:23:50
从HTML画布中获取Pixel是否可以查询HTML画布对象以获得特定位置的颜色?
查看完整描述

3 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

有一节是关于像素操纵在W3C文档中。

这是关于如何倒置图像的一个例子:

// Get the CanvasPixelArray from the given coordinates and dimensions.var imgd = context.getImageData(x, y, width, height);
var pix = imgd.data;// Loop over each pixel and invert the color.for (var i = 0, n = pix.length; i < n; i += 4) {
    pix[i  ] = 255 - pix[i  ]; // red
    pix[i+1] = 255 - pix[i+1]; // green
    pix[i+2] = 255 - pix[i+2]; // blue
    // i+3 is alpha (the fourth element)}// Draw the ImageData at the given (x,y) coordinates.context.putImageData(imgd, x, y);


查看完整回答
反对 回复 2019-07-13
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您试过getImageData方法吗?

var data = context.getImageData(x, y, 1, 1).data;var rgb = [ data[0], data[1], data[2] ];


查看完整回答
反对 回复 2019-07-13
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

是的,当然,只要你有它的背景。如何获得画布上下文?

var imgData = context.getImageData(0,0,canvas.width,canvas.height);// { data: [r,g,b,a,r,g,b,a,r,g,..], ... }function getPixel(imgData, index) {
  var i = index*4, d = imgData.data;
  return [d[i],d[i+1],d[i+2],d[i+3]] // returns array [R,G,B,A]}// AND/ORfunction getPixelXY(imgData, x, y) {
  return getPixel(imgData, y*imgData.width+x);}


查看完整回答
反对 回复 2019-07-13
  • 3 回答
  • 0 关注
  • 544 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信