哪些包可用于node.js进行图像裁剪?
我正在使用node.js创build一个网站 我看到很多图库提到在imagemagick之上捎带等。这里有一个列表: https : //github.com/ry/node/wiki/modules#graphics
我想要做的是拍摄用户上传的图像,裁剪/按照网站所需的尺寸resize。 什么是最好/最活跃的脚本来做到这一点? 我想用npm支持。 有没有人有使用其中的一些实际经验?
认为我发现了一个体面的imagemagick包装,可以处理这很好。 即使在将文件写入磁盘之前的内存中。 (也就是用户上传 – >节点imagemagick lib – > CDN,从来没有触摸磁盘…这是我想要的)
对于任何想要在Canvas和ImageMagick之间做出决定的人,我只是尝试了两种比较,而且我从imagemagick中得到了更好的结果。 这是一个从1024×768到128×128的大小和裁剪的图像:
如果您需要能够绘制或对您的图像做的影响,也许你仍然需要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
祝你好运!
- 在node.js中的gm转换问题
- jquery-file-upload-middleware with express.js:如何移动文件和添加水印?
- 在亚马逊lambda,并行调整多个缩略图大小asynchronous抛出错误:stream产生空的缓冲区
- Node.js GraphicsMagick不工作(无效的参数 – – 大小)
- 节点gm水印和resize
- child_process.spawn带括号的参数
- 节点应用程序正在等待来自Stream的最后一个“可读”事件
- 上传时错误的图像方向 – Amazon S3
- Graphicsmagick autoOrient()。size()在node.js库中给出了翻转的图像大小