fabric.js裁剪图片对象

最近手上的一个项目使用 fabric.js构建一个图片编辑器,裁剪图片是需求之一。虽然fabric.js提供了原生的裁剪功能,但是内置的裁剪功能目的在于将一个图片裁剪成特定的形状而边框不变(如下图),Google上能搜到的JSFiddle上几乎也都是使用的同样的方法,例如https://fiddle.jshell.net/filiperoberto/wLub3jau/,因此不符合我的需求。

Continue reading “fabric.js裁剪图片对象”

Javascript实现逐帧分解gif动态图

最近手上的一个项目需要用fabric.js实现将gif图片导入canvas的功能。由于fabric.js不原生支持gif,因此使用fabric.js的sprite类来实现。
要将gif转换为sprite sheet,需要先将gif逐帧分解。

我们使用的是原作者基于jsgif魔改的库。

代码

https://github.com/nyanim/gif-splitter

Demo

https://hyriamb.github.io/gif-splitter/

参考资料

http://www20.atpages.jp/katwat/wp/?p=5544

Javascript代码同步化

我最近一直在写js。在这期间,我在群里提的最多的问题就是

函数a在函数b执行之前就执行了,我应该怎么办?

我有一个用python写的网易云音乐的下载器,我最近在试图把它用nodejs重写一遍。
它的逻辑非常简单。但是我写了一半就写不下去了,因为一层一层的回调嵌套,代码已经成了 >形。

js一个重大的特点就是异步非阻塞,但是在一些情况下,下一步的操作需要依赖上一步的执行结果。这样就会有回调中再回调的情况出现。 当业务逻辑一复杂,回调的嵌套越来越多,可读性就会变差,维护起来也会很困难,这就是回调地狱。
node有很多第三方的模块用来将异步调用同步化,来解决这个问题。
Continue reading “Javascript代码同步化”