如何将版本 1.x 的结构过滤器值转换为 4.x

问题描述

我在画布上使用 Fabric Js 版本 1.6.4,但我在预览大尺寸时使用 Fabric Js 版本 4.x。 在 fabric 1.x 中,模糊、亮度、噪声、色调、饱和度和对比度等过滤器的值范围为 1 到 100。如何将此值转换为 0 到 1 或 -1 到 1 之间的 4.x 过滤器值。但是,我通过引用 this 设法转换了几个过滤器。

例如:

Brightness range 1.x = 70
(Conversion to 4.x) = (Brightness range 1.x) / 255

Contrast range 1.x = 50
(Conversion to 4.x) = (Contrast range 1.x) / 255

但是我无法使用上述计算转换噪声,因为噪声过滤器在 4.x 中的范围在 100 到 1000 之间。 我尝试过如下操作。

        {   name: "Noise",obj: function (range) {
                range = (range / 255) * 100;
                return new fabric.Image.filters.Noise({ 
                    noise: parseFloat(range)
                }); 
            }
        }

但它没有按预期工作,但是以下方法给出了最接近的结果,但没有正式记录,我假设乘数为 200。

       {    name: "Noise",obj: function (range) {
            range = (range / 255) * 200; /* Assumed 200 multiplier because there were no doc how to convert 
                return new fabric.Image.filters.Noise({ 
                    noise: parseFloat(range)
                }); 
            }
        }
  1. 为什么我们必须将亮度除以 255 而实际上我们必须除以 100 才能获得 0 到 1 之间的范围?
  2. 如何转换 1.x 版本的噪声和模糊(如果将旧值除以 255,则模糊无法按预期工作,除以 100 给出最接近的结果)值以匹配 4.x 版本?

请参考是否有任何其他官方文档用于所有过滤器转换。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)