Image processing 使用node.js动态裁剪和调整图像大小

Image processing 使用node.js动态裁剪和调整图像大小,image-processing,node.js,amazon-s3,Image Processing,Node.js,Amazon S3,我在AmazonEC2上运行node.js服务器。我得到一个巨大的csv文件,其中包含远程主机上产品图像的链接。我想在AmazonS3上裁剪并存储不同大小的图像 如何做到这一点,最好是只使用流,而不将任何内容保存到光盘?我认为您无法将全尺寸图像临时保存到磁盘,因为调整大小/剪切/etc通常需要完整的图像文件。所以,我说ImageMagick。我曾想过在图像处理部分使用ImageMagick,但我愿意接受其他选择。我不喜欢这个问题。我不明白你将来需要这些东西做什么。你永远不会去储存它们吗?那似乎是

我在AmazonEC2上运行node.js服务器。我得到一个巨大的csv文件,其中包含远程主机上产品图像的链接。我想在AmazonS3上裁剪并存储不同大小的图像


如何做到这一点,最好是只使用流,而不将任何内容保存到光盘?

我认为您无法将全尺寸图像临时保存到磁盘,因为调整大小/剪切/etc通常需要完整的图像文件。所以,我说ImageMagick。

我曾想过在图像处理部分使用ImageMagick,但我愿意接受其他选择。我不喜欢这个问题。我不明白你将来需要这些东西做什么。你永远不会去储存它们吗?那似乎是不必要的浪费。你什么都没试过?。。如果你遇到问题,为什么不试着发问呢?(当你这样做的时候包括代码)我相信这个问题很好。他显然不知道从哪里开始,很明显,他正在寻找如何实现这一目标的指导方针+1@jcolebrand:“我想在Amazon S3上裁剪并存储不同大小的图像。”我只想将从供应商处获得的图像大小调整为视图所需的大小。我不认为这是多么浪费。不,你可以用流来做,但这要么需要大量内存,要么需要大量网络流量。只是我觉得不值得。你是对的;我想我的意思是你需要完整的映像来进行操作(无论是在磁盘上还是在内存中),因此使用流和内存缓冲区是愚蠢的,因为磁盘空间比RAM便宜。保存到磁盘的问题是,它会带来管理开销。我甚至不确定大多数托管的node.js服务是否能够处理它(我只是说,这对我来说不是问题)。@Thomas而且在操作过程中不断流式处理的问题是密集的CPU和内存开销。你要在VPS上做这个是吗?您是按CPU小时付费还是按“实例当前处于活动状态”小时付费?按CPU小时付费一次支付成本更有意义。简单的图像大小调整(即使是重采样)绝对不需要随机访问整个图像。从算法的角度来看,这可以增量完成。对于最简单的调整大小,“最近像素”减少,只需删除给定行中的每个第n个像素和每个第n行。显然,这不需要任何内存,只需要两个计数器。如果您想放大图像,或使用任何形式的重采样/插值,事情会变得更复杂,但即使如此,您所需要的最大值也是保留最后n行(n=重采样半径)。