写这篇文章的时候我就要说一下了,这个遮罩和裁剪耗费了我真的是九牛二虎之力
裁剪的插件很多,无论你用原生JS,JQuery, Vue还是React.总能找到一款裁剪插件。今天我要说的是自己写一个截图功能,直接就在操作的画布中操作需要裁剪的图片,而不是跳一个新页面裁剪后再挪过来。Fabricjs 提供了很多方式的裁剪,最常见的是Object属性的上的clipTo,然而有弊端.
比如google一下比较好的一个demo: http://jsfiddle.net/hellomaya/kNEaX/1/
- 发现没有,裁剪后的选框依然和原图片一样大,无论用啥操作都没法使其变小(或许有办法我没试出来)
- 看源码,会发现他的clipTo一方面不完善,一方面只能是矩形的裁剪。没法实现遮罩。比如如下图:
这个时候发现官方demo有个其他方式的遮罩。 http://fabricjs.com/patterns fabric.Pattern 这个捏,文档写的倒是挺含含糊糊,网上的例子也是很少,不过功能是很强大,无论字体,形状,图片都统统可以给你遮罩上去。但是离我们最后要实现的功能还是有点距离