问题标签 [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 投票
1 回答
160 浏览

javascript - 使用 GraphicsMagick 操作 GridFS 文件并将其存储为新文件

我正在尝试通过gridfs-streamhttps://github.com/aheckmann/gridfs-stream)读取 GridFS 文件,将其旋转 90°gm并将其存储为新的 GridFS 文件。

我的结果看起来很“不时尚”......所以我正在寻求帮助来优化这个小代码片段......

这段代码的第二件事:我需要一种“开关”。此代码对图像进行旋转操作。但我需要传递一个参数来进行旋转、调整大小或其他操作。我该如何整合它?

0 投票
1 回答
3040 浏览

node.js - Amazon Lambda 函数合并多个 s3 图像并放入目标存储桶

我正在研究一个 lambda 函数,它将通过 amazon rest api 触发。

我创建了以下

  • REST API 控制台上的POST端点
  • 链接到 REST API 的 lambda 函数

现在作为第一次尝试,我创建了函数,以便它将接受参数作为

lambda 函数将使用request模块获取图像,然后上传到存储桶。

由于我使用了多个模块,因此我在本地创建了所有内容并将它们压缩,包括并通过指定名称node_modules将它们上传到 lambda 函数控制台。Handler

到目前为止它很好,而且效果很好。

现在为了扩展它,我试图发送 2 张个人资料图片 - 一张来自用户 - 另一张是他/她的朋友之一 - 将两张图片合并为一张,然后将合并后的图片上传到目标文件。

我尝试了不同的合并方法,但没有任何效果。在这里找到了一些解决方案,似乎他们真的不喜欢流

这是我到目前为止所做的,正如我提到的那样,这两个图像都被上传到一个存储桶中,但是合并似乎失败了,我没有办法完成这个,如果你能给我一些关于如何做。

目前它使用异步模块来完成单个任务

  • 首先将两个图像并行上传到s3
  • 然后使用 s3.getObject 并行下载它们
  • 最后在完成第二个任务时尝试合并并推回 s3

基本上会有一个模板图像,并且在模板图像上将放置(合并)多个图像,在下面的代码中,我将userProfileImagePath其视为主模板并尝试将另一个图像合并到其中。

如果有其他方法可以做到这一点,请告诉我。

这是我到目前为止所做的

更新

在进行一些更改后,我尝试让代码在本地运行,并使用文件系统进行操作,它似乎正在工作,不知道如何使用 s3 使其在 Lamba 上同样工作 这是使用文件在本地运行的代码系统

0 投票
2 回答
1901 浏览

node.js - 错误:Stream 在 nodejs 上使用 gm 产生空缓冲区(Windows)

当我尝试在 Windows 上使用 gm 和 nodejs 执行这个简单的代码示例时:

我得到错误:

[Error: Stream yields empty buffer]

为什么会发生此错误,我该如何解决?

0 投票
1 回答
2892 浏览

node.js - 如何使用 gm 为节点(graphicsmagick/imagemagick)添加居中文本?

这与节点的“gm”扩展有关,http://aheckmann.github.io/gm/docs.html

我需要添加一些以边界框为中心的文本(水平就足够了)。函数 drawText() 需要 x,y 坐标,但无法绘制居中文本。

否则我需要一个函数,它可以返回给定字体/大小的文本字符串的宽度,所以我可以在调用 drawText() 之前计算我在 javascript 中的起始 x 位置。

0 投票
0 回答
933 浏览

node.js - 此图像格式没有解码委托 `'

使用 gm 包时出现奇怪的错误。我使用 Windows x86。我已经安装了 gm,也安装了 imagemagick。

这是我的代码:

这是我得到的错误:

您可以看到 imagemagick 支持 jpeg,因为我不明白我的问题是什么。

0 投票
2 回答
723 浏览

node.js - GraphicsMagick 无法处理 Unicode 文件名

我发现 GraphicsMagick 无法处理我用中文命名的文件。我在 ImageMagick 上做了同样的测试,但 IM 按预期工作。

我认为这可能是一个错误,所以我在这里提交了一个错误报告:https ://sourceforge.net/p/graphicsmagick/bugs/384/

无论如何,这是重现我的情况的方法:

  • 平台:Win10
  • 版本:GraphicsMagick 1.3.20
  • 代码:gm -identify 獅藝學會.jpg

这是命令提示符返回的文本:

使用 IM 有效:

虽然返回的文本是乱码的,但是将文件转换为.png除了不同的扩展名之外仍然保持相同的文件名。

发生了什么

我通过使用gm node.js 库批处理我的图像发现了这个问题,调用的源是从UTF-8网页进行的,所以我假设文件名作为 Unicode encoding 传递

我没有找到与此问题相关的文档,虽然文档说明有一个-encoding选项,但它无法在 Windows 上作为参数发送,因为它无法识别它,我在 Google 上找不到相关解决方案。

请帮忙,有什么简单的方法可以解决这个问题,同时保持准确的文件名?

0 投票
5 回答
4545 浏览

amazon-web-services - AWS Lambda 不能与 gm 模块一起使用

当将图像放入 s3 存储桶时,我正在使用 AWS Lambda 使用节点 js 将 s3 存储桶中的图像调整为不同大小体。

它一直工作到昨天。今天,当我使用相同的 lambda 函数时,出现以下错误:

我无法理解为什么会出现这种现象。下面我的 lambda 函数的所有给定函数都在异步瀑布中,首先计算纵横比,然后将图像转换为不同大小的变体。

有人可以帮助调试问题吗?在过去的 3 个小时里,我有点卡在这个问题上。我的 AWS Lambda 在东京地区。

0 投票
1 回答
47 浏览

imagemagick-convert - ImageMagick:为什么调整大小的 GIF 图像似乎有一些颜色被白色代替了?

想知道是否有人知道可能导致这种情况的原因。

原图:

img_20160206

缩略图代码(使用http://aheckmann.github.io/gm/):

结果图像:

挥手拇指

0 投票
0 回答
316 浏览

node.js - 如何在 gm 中为节点换行?

今天发现GM需要在我的图片中加入文字。如果文本的宽度比我的图像宽度长,有没有办法确保我的文本换行?

0 投票
1 回答
2034 浏览

node.js - aws lambda中的gm错误:字符串产生空缓冲区

在使用 amazon lambda 进行自动定向转换后,我正在尝试将缓冲区上传到 s3。我正在从 Nodejs api 发送缓冲区,如下所示:

当我在 api 中控制台日志 data.file._data 时,我得到如下信息:

在 lambda(也是 nodejs)中,我有以下代码:

所以。当我尝试上传图像时,这是 file._data 像 gm 命令之前一样打印的内容:

但在 gm 命令中,这将打印为错误:

错误:流产生空缓冲区