Openlayers 3 OpenLayers 3:将一层置于灰度,而不更改其他层

Openlayers 3 OpenLayers 3:将一层置于灰度,而不更改其他层,openlayers-3,Openlayers 3,我有一个棘手的问题,关于是否有可能将图层设置为灰度,并打开图层3 我已经实现了使用canvas元素的可能性将整个地图置于灰度中,就像下面讨论中提出的示例中所示: 但我的需求与这些示例略有不同:我想让用户能够在不改变其他图层颜色的情况下,以灰度一层一层地放置图层。例如,我们的想法是将一个背景层设置为灰度,而其他数据则设置为彩色 有人知道这样的事情是如何实现的吗 谢谢正是您想要的。这是一个例子 这使您能够在每层的基础上操作任意源的像素数据。事实上,这似乎是我需要的正确的东西。感谢您的提示,我将检查它

我有一个棘手的问题,关于是否有可能将图层设置为灰度,并打开图层3

我已经实现了使用canvas元素的可能性将整个地图置于灰度中,就像下面讨论中提出的示例中所示:

但我的需求与这些示例略有不同:我想让用户能够在不改变其他图层颜色的情况下,以灰度一层一层地放置图层。例如,我们的想法是将一个背景层设置为灰度,而其他数据则设置为彩色

有人知道这样的事情是如何实现的吗

谢谢

正是您想要的。这是一个例子


这使您能够在每层的基础上操作任意源的像素数据。

事实上,这似乎是我需要的正确的东西。感谢您的提示,我将检查它并分享我的经验嗯,光栅源可以用于图像层(如上面的示例),但我认为不可能将光栅源附加到WMS或WMTS层,是吗?我的精确需求涉及所有类型的图层。
ol.source.graster
适用于所有类型的瓷砖或图像源,WMS或WMTS源也是瓷砖/图像源。感谢您的耐心等待!但我似乎错过了什么。1) 在本例中:我基于ol.source.WMTS创建了一个ol.layer.Tile,然后
  var raster = new ol.source.Raster({
    sources: [new ol.source.Stamen({
      layer: 'watercolor'
    })],
    operation: function(pixels, data) {
      // convert pixels to grayscale
      return pixels;
    }
  });