哪些包可用于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上运行Azure上的imagemagick
- 当使用bas64string作为参数调用时,节点gm(imagemagick)似乎不起作用
- 使用请求和gm模块在NodeJS中下载后立即调整图像大小
- 我如何在AWS Lambda上安装GraphicsMagick或ImageMagick?
- GraphicsMagick:toBuffer()stream产生空的缓冲区
- node.js到imagemagick命令中断
- ()GraphicsMagic中如何将图像缓冲区数据传递给gm
- 如何解决这个错误与node.js和node-imagemagick:错误:命令失败:execvp():权限被拒绝?
- 在Nodejs中使用gmresize和构图两个或多个图像