【问题标题】:How to implement a reversed radial tilt shift effect in canvas [closed]如何在画布中实现反向径向倾斜移位效果[关闭]
【发布时间】:2015-12-15 17:58:39
【问题描述】:

我在创造什么

我正在创建一个 JavaScript 图像处理应用程序(使用 Fabric.js 和 HTML5 画布)来构建/重新渲染画布并将对象放置/拖动到上面。放置对象后,它可以导出数据url并操作图像。

我要添加的功能

我正在尝试实现反向径向倾斜移位效果,以便图片中的某些点可能会“模糊”。通过 Fabric.js 或单纯的 HTML5 画布实现这一目标的最快方法是什么?

这是我想要实现的一个示例

我的尝试

  • 添加圆形并尝试添加模糊/卷积效果 它然后降低不透明度=>这在我的情况下不起作用,我 只能更改不透明度属性。

  • 添加图像(来自 URL)并尝试与第一个相同的操作 观点。 => 这在我的情况下不起作用,我只能添加一个 模糊/卷积滤镜,但不改变不透明度。

【问题讨论】:

  • 你说最快?只需在所需区域上绘制一条填充有中等透明度白色的圆形路径。您可以通过像素操作进行模糊处理,但速度较慢。
  • @markE:我想要实现的主要目标是模糊,所以我认为仅仅透明是行不通的。
  • 很公平。你签出the stackblur script了吗?
  • 检查我的答案以获得简单的技巧。您模糊图像并将其用作与圆形相反移动的图案。请从屏幕截图中看到您使用的是旧版本的fabricjs(在边界框外描边)更好地更新。

标签: javascript html canvas fabricjs image-manipulation


【解决方案1】:

也许我可以稍后完成这个演示。

如您所见,我将您的图像作为背景。 然后我将相同的图像加载到我用来为圆圈创建图案的图像元素中。 现在,当圆圈移动时,我会移动图案偏移量,因此看起来图像与背景相同,但您正在查看图案。

现在想象一下使用 stackblur 或 fabricjs 过滤器来模糊图案图像(只需一次),你应该会得到你想要的效果。

需要一些技巧来补偿缩放效果。

我稍后会完成演示。 希望对你有所帮助。

编辑:我这里有严重的 cors 问题。 我不知道如何使用非本地图像制作 sn-p。

这里是使用 fabricjs 制作的工作演示: http://www.deltalink.it/andreab/fabric/blur.html

【讨论】:

  • 哇,这真是太棒了,感谢您的帮助和精彩的演示!这为我节省了大量时间,您能否通过“需要一些技巧来补偿缩放效果”为我指明正确的方向?
  • 我在演示中添加了缩放效果“提示”。我用椭圆改变了,因为考虑模糊面孔更有用。你知道吗?现在轮换不见了。
  • 非常感谢 :) 您为有效扩展做了哪些更改?而且我想我要禁用轮换,暂时不需要。
  • 为了它的价值 image.crossOrigin = 'anonymous';仅当您的服务器允许 CORS 时才有效,因此您尝试访问的主机可能没有
  • 如何根据手势事件计算新的宽高?
猜你喜欢
  • 2012-07-01
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
相关资源
最近更新 更多