我正在制作一个基于Fabric.js
的应用程序,用户可以上传图像并制作海报。最近,我开始使用clip
函数来使用用户绘制的路径裁剪图像。
工作原理:用户从画布中选择一张图片,然后点击crop
按钮。从画布中选择activeElement
,提取其image src
。此SRC用于在canvas
上的Bootstra Modal
上放置图像。用户单击将绘制路径的图像,最后裁剪图像。
单击裁剪按钮后,将从点点生成SVG路径。然后,此值用于裁剪图像。
问题:如果图片是没有背景的PNG(我们只使用PNG),则会使背景为“黑色”。
下面,@_path
指的是面料。用户单击使用svg路径创建的路径对象。 @_image
是图片fabric.Image
。
clipPath: () ->
path_x = @_path.getLeft() - ( @_image.getWidth() / 2 )
path_y = @_path.getTop()- ( @_image.getHeight() / 2 )
@_path.setLeft path_x
@_path.setTop path_y
# console.log 'Fill white'
# @_image.setFill('white')
@_image.clipTo = ( ctx ) =>
@_path.render( ctx )
@_image._clipToPath = @getPathSVG()
@_canvas.renderAll()
return
我尝试@_image.setFIll('white')
和@_image.backgroundColor = 'rgba(255,255,255,1)'
,但似乎没有效果。
问题:
clipTo
)?为什么你认为提前致谢。