当前位置: 首页 > 面试题库 >

我应该使用哪个库在Node.JS上进行服务器端图像处理?

花欣然
2023-03-14
问题内容

我在Node.JS Wiki上找到了大量可用的库,但是我不确定哪个库更成熟并提供更好的性能。基本上,我想执行以下操作:

  1. 从外部源将一些图像加载到服务器
  2. 把它们放在一块大画布上
  3. 裁剪并遮盖一下它们
  4. 应用一两个过滤器
  5. 调整最终图像的大小并为其提供链接

如果节点程序包可在Linux 和Windows 上同时使用,则是一大优势。


问题答案:

回答我自己的问题

我花了两天时间浏览Node.js图形库。

节点画布

  • 因为我对<canvas>API 非常熟悉,所以我首先尝试了它。对于图书馆而言,这是一个巨大的优势。
  • 它需要没有简单的Windows下载功能的Cairo。我在GTK +发行版中找到了它。
  • 此外,它需要在模块安装时编译本机库绑定代码。它使用尚未移植到Windows的Node-Waf。

gm

  • 成熟
  • 在Windows上顺利运行
  • 文档是 好的 ,但不彻底:我不得不寻找到源代码,以弄清楚什么API可用
  • 不幸的是,没有简单的方法可以将图像与gm结合在一起。也许有一些方法可以实现这一目标,但是我花了两个小时才找到一个。

节点图像魔术

  • 官方仓库几乎没有介绍基本的ImageMagick命令,但是我使用了这个fork(NPM可以直接从git仓库中提取库的好处)。它具有montage确实满足我需要的绑定。
  • 尽管ImageMagick可以在Windows上运行,但运行速度很慢。

节点威

  • 巨大的优点:它使用了我熟悉的不可思议的VIPS库。VIPS非常快,并且针对大图像进行了优化。利用硬件资源非常聪明:如果您的计算机有很多RAM,它将在内存中进行所有处理,但是如果内存不足或其他应用程序需要时,它将切换到硬盘驱动器缓存。
  • 与node-canvas相同,它需要Node-Waf,因此Windows尚不可用。

我还从列表中查看了其他库,但是其中大多数库要么非常不成熟,要么不适合我的用例。当Node-Waf移植到Windows时,我真的很想尝试迁移到Node-
Canvas或Node-Vips,但在那之前,我将坚持使用node-imagemagick。



 类似资料:
  • 问题内容: 由于我没有收到对最后一个问题的肯定回答。我将尝试自己编写一个Java FTP上传小程序。 我的问题是:“您能推荐一个Java FTP客户端库供我使用吗?” 我希望它是: 稳定 能够处理被动和主动模式 能够提供上传进度信息 如果出了问题(尤其是上传不成功时),则引发可捕获的异常 便宜/免费使用,最好是开源的 我发现这个 概述了一些库,但由于这篇文章是从2003年,也许一些新的事态发展已经

  • 问题内容: 您应该在服务器端进行验证,还是可以在客户端进行验证? @TheTXI 我很高兴您感到惊讶,我只是不想遗漏任何可能改变某人答案的虚假信息。 似乎很多人都在关注我要追求的目标,但是应该将Ajax的一部分保留在我的问题中,因为这是最重要的部分。 但是,我阅读这些帖子后知道,一个坏人可以轻松地加载萤火虫并将我的按钮更改为“提交”按钮并进行发布。或其他方式。 问题答案: 浏览器/客户端验证很方便

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我正在重写一个项目以使用Node.js。我想继续使用MySQL作为数据库(即使我不介意重写架构)。我正在寻找一种易于使用,性能合理的ORM,它支持缓存,多对一

  • 问题内容: 我正在设置标头和正文,使用Post提取将图像上传到服务器上。我得到的响应码是200,但它不是上传图像,而是其余数据正在上传。 这是正文的代码: 请帮助。我正在犯什么错误。:( 问题答案: 我找到了解决方案: **文件名是可选的…

  • 嗨,我在试图理解如何使用datatables进行服务器端处理时遇到了一些主要问题。在某些背景下,我使用一个服务调用Gamesparks为视频游戏创建后端,在这个服务中,他们有一个mongodb的实现。 我有一个endpoint可以获取所有用户,我可以在表中看到他们,但问题是我获取了所有用户,如何实现分页?。在文档中,他们声明我们必须将serverSide设置为true,但不起作用。我真的不知道如何

  • 我最近发现有两个图形API可用于Azure Active Directory。有unified和AAD专用: