我目前正在使用canvas和Javascript进行图像处理,使用的工具是fabric.js。我希望用户能上传一张图片并与我们提供的模板合并,即:
我只想在中心的空白圆圈中显示已上传的图片,并允许用户通过拖动来调整图片。
- 如果我将模板设为上层,则用户无法拖动和调整,因为画布已被填满。
- 如果我将上传的图片设为上层,则该图片会溢出圆圈。
如何通过简单易用的界面解决这个问题? 我尝试过在fabric.js中使用ClipTo函数,但它不适用于图像对象。
overlayImage
的作用是覆盖在所有其他内容之上。它只是一个在渲染循环的最后发生的简单的drawImage
调用。但是,如果这个图像中间是透明的,你真的需要它放在最上面吗?那么在这个圆形区域内的任何内容都会被它剪裁掉。 - kangaxcanvas.contextContainer
上手动绘制一些内容(例如使用本地的strokeText
方法)。但是很难将面料对象呈现在顶部。也许可以通过创建文本对象的某种黑客方式,然后在“contextContainer”的上下文中调用其“_render”方法——textObj._render(canvas.contextContainer)
(在“after:render”回调中),或类似的方法。 - kangax