问题标签 [gm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
82 浏览

node.js - 如何根据带有nodejs(gm)的预定义多边形缝合两个图像

我想做什么?

我正在尝试根据使用 nodejs(gm) 的预定义多边形缝合 2 个相同大小的图像。我成功地这样做了,但它非常麻烦和耗时。寻找一种更短更好的方法来做到这一点。

详细介绍

我有 2 张图片大小为 256x256。我还有一个预定义的多边形(例如 - [0,255],[0,50],[100,100], [255,50],[255,255],[0,255] )。

注意: 这些图像可以有透明像素和常规像素

我的目标是将两张图像拼接在一起,其中第一张图像被裁剪为仅包含多边形中的内容,而另一张图像仅包含多边形外部的内容。比如图1是全红,图2是全黄,那么这个小程序的输出应该是

目前的解决方案

我设法做到了,使用以下代码。但是,它很长,很麻烦,而且很耗时。

然后,使用合成,以便将一张图像放在另一张图像上。

有什么方法可以简化和优化它?

谢谢!

0 投票
0 回答
394 浏览

node.js - 使用 jimp 和 gm npm 模块在 discord js bot 中缓冲相同图像时出现问题

您好,我尝试使用 gm 和 jimp 模块在 discord.js 上缓冲相同的图像 jimp 用于添加 img(用户头像)和 gm 用于添加文本(用户用户名)但我失败了,因为我找不到让 gm 识别的方法jimp 的缓冲结果并再次编辑并发送它我在下面尝试了这段代码

0 投票
1 回答
851 浏览

node.js - TypeError:无法读取未定义 gm 库的属性“宽度”

以前,我已按照此链接使用 AWS Lambda 成功创建缩略图。节点版本是8.10

现在,由于 AWS 将弃用具有此节点版本的任何应用程序,我必须将节点版本更新为10.x

我们正在与您联系,因为我们发现您的 AWS 账户目前有一个或多个使用 Node.js 8.10 的 Lambda 函数,该函数将在 2019 年底达到其 EOL。

发生了什么?

Node 社区已决定于 2019 年 12 月 31 日结束对 Node.js 8.x 的支持1。从该日期开始,Node.js 8.x 将停止接收错误修复、安全更新和/或性能改进。为确保您的新函数和现有函数在受支持且安全的运行时上运行,已达到其 EOL 的语言运行时在 AWS 2中已弃用。

对于 Node.js 8.x,运行时弃用过程将分为 2 个阶段:

  1. 禁用函数创建 - 从 2020 年 1 月 6 日开始,客户将不再能够使用 Node.js 8.10 创建函数

  2. 禁用函数更新 - 从 2020 年 2 月 3 日开始,客户将无法再使用 Node.js 8.10 更新函数

在此期间之后,功能创建和更新都将被永久禁用。但是,现有的 Node 8.x 函数仍可用于处理调用事件。

我需要做什么?

我们鼓励您将所有 Node.js 8.10 函数更新到更新的可用运行时版本 Node.js 10.x[3]。在将更改应用于生产函数之前,您应该测试函数与 Node.js 10.x 语言版本的兼容性。

如果我有问题怎么办/如果我需要帮助怎么办?

如果您有任何问题或疑虑,请通过 AWS Support [4] 或 AWS 开发人员论坛 [5] 联系我们。

因此,我已将我的节点版本更新为10.17.0并在 AWS Lambda 中再次部署该程序包。现在,如果任何图像已上传到 S3 并且 aws lambda 尝试将图像转换为缩略图,则会显示以下错误:

在此处输入图像描述

这是完整的代码:

错误基本上在这一行:

8.10 的节点版本运行良好。我不知道在这种情况下该怎么做。我在配置中有1024MB的内存大小

谁能指出我应该在哪里改变?提前致谢。

0 投票
2 回答
495 浏览

javascript - Node.js GraphicsMagick - 将 2 个图像连同位置和尺寸组合在一起

我正在尝试使用 Node.js gm库将两个图像叠加在一起。对于最终图像,avatar.png需要在bg.png. 这是我开始的代码:

这按它应该的方式工作,但我还需要将图像移动到一个x, yof 50, 50,所以我使用了这个geometry()函数:

下一个问题是我需要将图像放大到200x 200,所以我尝试了一些方法来做到这一点:

这最终缩放bg.png到尽可能接近200x 200,同时仍然保留图像的纵横比。由于这不起作用,我尝试了这个:

这只是忽略了该resize()功能,根本没有缩放任何东西。交换的顺序,resize()geometry()没有做任何事情。

我怎样才能缩放avatar.png200x 200

0 投票
0 回答
784 浏览

node.js - 使用节点js的aws lambda中的pdf缩略图

我正在将此节点 js 脚本用作 aws lambda 脚本,以在将 pdf 上传到 s3 存储桶后立即创建 pdf 文件的缩略图。

每当我将文件上传到 s3 存储桶时,我都会收到此错误错误:流产生空缓冲区。我已将内存增加到 2 GB 仍然存在问题。请帮忙,让我知道这里出了什么问题。

0 投票
1 回答
93 浏览

javascript - GraphicsMagick (GM) 在不改变比例的情况下调整为正方形并添加背景

我正在尝试让 GraphicsMagick 将我的各种图像调整为标准正方形。输入总是可变的——垂直、水平图像、不同尺寸等。

我基本上想要: - 白色背景画布 @ 600px x 600px - 图像位于画布的中心 @ 500px x 500px

从文档中尝试了很多,但我无法让它正常工作。

这就是我到目前为止所做的工作(JavaScript):

它只是显示正确的宽度,但保持比例,因此对于矩形,它的宽度为 600 像素,高 240 像素(因为它保持了比例)。

任何帮助表示赞赏!

0 投票
0 回答
166 浏览

node.js - 为 gm 上传文件时可以获取缓冲区或流吗?

我想在上传文件时制作 pdffile 的缩略图。

但是,我不想在上传到存储(s3)后从 url 获取流。

我想从请求中获取流或缓冲区。

这是我的尝试。

然后,我得到一个错误代码。

谢谢您的帮助。

0 投票
0 回答
457 浏览

node.js - 错误:命令失败:无效参数 - -resize

0 投票
0 回答
20 浏览

javascript - 如何在尝试在 node.js 中读取文件之前等待创建文件?

我正在用 GraphicsMagick 创建一个图像,然后我想在阅读它之前等待它被创建,这就是我尝试过的:

但目前它会在写入磁盘之前尝试读取它导致

提前感谢您的答案

0 投票
1 回答
1064 浏览

javascript - 找不到 gm/convert 二进制文件 Node.js pdf-to-image 转换

我正在使用https://www.npmjs.com/package/pdf2pic将我的 PDF 转换为图像。

错误 :

我试过了 :

而且问题仍然存在。我该如何解决这个问题?