项目需求(对app的轮播,以及banner和咨询的图片进行裁剪):前期实现使用用vue-cropper插件对图片进行插件,----后续需求需要裁剪gif动图(vue-cropper、微信自带的截图工具,以及fastStone截图工具,都只能截取静态图片,打开动图时只显示某一帧的静态图片),所以需要研究为什么vue-cropper明明打开的是gif图,而结果显示的确实某一帧???对于上传图片的操作使用type=file的html标签,选中某个文件后产生文件流,然后我们将文件流转化为base64,通过img的src引入时,动图可以显示,但是通过vue-cropper这个插件中的组件src属性引入时,页面只能显示某一帧图片,所以vue-cropper插件不支持裁剪动图, 实现思路:仿照vue-cropper(没有现成的裁剪gif组件) 实现思路:三步很简单,但实现起来不容易(涉及到三个js库) (1)上传gif动图,通过img标签显示在页面上 (2)在图片上显示裁剪框 (3)解析gif动图的某一帧,然后将每一帧生成canvas图像(每一帧都是一个图片,生成的图像已经是被裁剪过了的); (4)将canvas图像转化为gif,通过addFrame收集canvas图像,收集完毕后调用render合成; 三个js库的作用—涉及到三个构造函数Cropper、GifToCanvas、Gif