当前位置: 首页 > 知识库问答 >
问题:

VS Node.js中AWS Lambda函数的Sharp图像库

祁鸿哲
2023-03-14

我正在Visual Studio中开发一个AWS Lambda函数,该函数需要快速调整图像大小。最初,我使用ImageMagick来调整这些图像的大小,但整个过程需要太长的时间来处理。ImageMagick的替代品似乎是另一个图像库Sharp。夏普可能会使用原生AWS Lambda代码,以便更快地调整图像大小。根据这篇文章,Sharp需要在EC2实例中构建才能做到这一点(https://github.com/awslabs/serverless-image-resizing)。

我还没能把这个弄好。这里有人把这个弄好了吗?如果是这样,那么在EC2中是否有一个为夏普构建的预构建库,或者我应该自己构建它?

我确实在npm找到了一个Sharp库,但我没能让它工作。npm中的Sharp库甚至与AWS Lambda函数兼容吗?如果是的话,它是否通过使用本机处理而提高了速度?

共有1个答案

何安宜
2023-03-14

为了让sharp在AWS Lambda上工作,我可以在package.json中添加一个npm脚本,然后使用docker-lambda执行npm运行dockerbuild。这是在Amazon Linux docker映像上编译的,但是输出留在我的项目文件夹中(这样我就可以打包.zip以便部署到AWS Lambda)。

  "scripts": {
    "dockerbuild": "docker run -v \"$PWD\":/var/task lambci/lambda:build-nodejs6.10"
  },

npm安装docker-lambda之后,我还能够在docker映像内部进行测试--因为sharp本机库是为Linux(而不是我的主机系统)编译的,所以我不能直接进行测试。

 类似资料:
  • 我一直在写一个文本检测代码,我正在使用一个二进制映射作为一个掩码来处理图像。在获得候选文本区域之后,我在图像上应用函数,然后在图像上应用掩码以获得这些区域的位置。 现在我创建了一个循环来丢弃不满足某些“子句”的区域。如果没有,我将该区域中的所有像素设为0()和二进制映射()。 当我在进入循环之前绘制地图和图像时,它们符合,但之后它们就不符合了。当我在循环后绘制图像时,显示它完美地擦除了区域,但地图

  • 描述 (Description) 在图像上添加Sharpening fitter 。 例子 (Example) ![My New Image](/images/maxresdefault.jpg?cropZoom = 300, 200&sharp) 输出 (Output) 上面的代码将生成以下输出 -

  • sharp 是一个高性能的 Node.js 模块,典型用例是将常见格式的大图像转换为较小的、对网络友好的 JPEG、PNG、WebP 和不同尺寸的 AVIF 图像。由于使用了 libvips 库,调整图像大小的速度通常比使用 ImageMagick 和 GraphicsMagick 快 4 到 5 倍。 颜色空间、嵌入的 ICC 配置文件和 alpha 透明通道都得到了正确处理,Lanczos 重

  • AiDex Sharp 快速开发平台 基于著名的开源项目“ 若依-RuoYi-Vue ”改造而成,追求 极致的UI交互体验 和 快速开发 ,一切向 效率 看齐, 重构优化 后端的代码,对前端页面进行了 美化 。 我们将持续升级,持续完善,欢迎友友们收藏和点赞  系统截图 更多功能请访问系统体验 在线体验 演示地址:http://114.132.221.116 帐号:admin 密码:admin12

  • JSON Sharp 是一个简单的 .NET 用于实现 JSON 序列化和反序列化的库。 示例代码: string JSON.Serialize(object o);string object.ToJSON();object JSON.Deserialize(string json, Type type);object JSON.Deserialize(string json);

  • Puppeteer Sharp 是官方 Node.JS Puppeteer API 的 .NET 端口。 相关链接 API 文档 StackOverflow Issues 用法 截屏 using var browserFetcher = new BrowserFetcher();await browserFetcher.DownloadAsync();await using var browser