Matrix FabricJS-乌贼效应

Matrix FabricJS-乌贼效应,matrix,fabricjs,Matrix,Fabricjs,使用fabricJS,我试图在我的图像中添加乌贼墨效果,但我对sepia或sepia2内置效果都不满意 下面是一个屏幕截图,左图为深褐色2效果,右图为我希望实现的效果: 查看fabric.js文件,我可以看到效果如何产生的细分(见下文)。在过去的一个小时里,我一直在改变数值,希望他们能改变数值,使之与上面的数值相匹配,但我不明白什么数字意味着什么,我无法得到一个好的匹配。有人知道我想要的乌贼墨的正确数值吗 applyTo: function(canvasEl) { var context

使用fabricJS,我试图在我的图像中添加乌贼墨效果,但我对
sepia
sepia2
内置效果都不满意

下面是一个屏幕截图,左图为深褐色2效果,右图为我希望实现的效果:

查看fabric.js文件,我可以看到效果如何产生的细分(见下文)。在过去的一个小时里,我一直在改变数值,希望他们能改变数值,使之与上面的数值相匹配,但我不明白什么数字意味着什么,我无法得到一个好的匹配。有人知道我想要的乌贼墨的正确数值吗

applyTo: function(canvasEl) {
  var context = canvasEl.getContext('2d'),
      imageData = context.getImageData(0, 0, canvasEl.width, canvasEl.height),
      data = imageData.data,
      iLen = data.length, i, r, g, b;

  for (i = 0; i < iLen; i+=4) {
    r = data[i];
    g = data[i + 1];
    b = data[i + 2];

    data[i] = (r * 0.393 + g * 0.969 + b * 0.189 ) / 1.351;
    data[i + 1] = (r * 0.349 + g * 0.986 + b * 0.168 ) / 1.203;
    data[i + 2] = (r * 0.272 + g * 0.934 + b * 0.131 ) / 2.140;
  }

  context.putImageData(imageData, 0, 0);
}
applyTo:function(canvasEl){
var context=canvasEl.getContext('2d'),
imageData=context.getImageData(0,0,canvasEl.width,canvasEl.height),
data=imageData.data,
iLen=数据长度,i,r,g,b;
对于(i=0;i
其他乌贼墨效果使用类似的公式,但没有尾部分割。 因此,采用sepia2过滤器

尝试更改以下行:

data[i] = (r * 0.393 + g * 0.969 + b * 0.189 ) / 1.351;
data[i + 1] = (r * 0.349 + g * 0.986 + b * 0.168 ) / 1.203;
data[i + 2] = (r * 0.272 + g * 0.934 + b * 0.131 ) / 2.140;
简单地说:

data[i] = (r * 0.393 + g * 0.969 + b * 0.189 );
data[i + 1] = (r * 0.349 + g * 0.986 + b * 0.168 );
data[i + 2] = (r * 0.272 + g * 0.934 + b * 0.131 );
这是我能得到的最接近“可识别”的乌贼墨效果


哇,非常感谢你。你的乌贼墨很适合我