问题标签 [jimp]

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 投票
2 回答
353 浏览

javascript - 使用画布动态更改文本大小

使用包node-canvas,我需要呈现一个用户名——一个可能相当大的用户名。我需要确保文本可以动态缩放它的大小以适应预定义的图像,这样名称就不会被截断,它只会变得更小,以便可以呈现更多字符。我曾考虑使用 jimp 和 sharp,但找不到最佳结果。

谢谢。

0 投票
1 回答
476 浏览

javascript - Node JS 和 JIMP:没有匹配的构造函数重载

我正在尝试使用 nodejs 和 JIMP 在简单的 jpg 或 png 上写一些文本,但我在使其工作时遇到问题。图片来自电报机器人,它与另一张带有画布的图片合并,然后我必须在上面写一些简单的文字。

这是我的代码:

我不断收到有关未找到匹配的构造函数重载的错误。让 JIMP 读取我的本地文件也遇到了麻烦。

我得到完整的错误:

完整的上下文:

github 上的 srcs:https ://github.com/pedrofracassi/badgemaker和https://github.com/FerdinandoLM/IngressFSBadgeMaker

0 投票
1 回答
531 浏览

node.js - 在没有 Nest 特定包的 NEST JS 中使用 NPM 包

在我的 Nest js 应用程序中,我想添加没有任何特定于嵌套实现的库。例如锐利或吉普。

我在我的项目中添加了这些,比如

并像这样在我的代码中导入。

当我在本地构建和服务时它工作正常,但是当我从 docker 提供它并构建生产版本时,我收到以下错误:

0 投票
0 回答
77 浏览

node.js - 使用 node.js 构建动态字符串、旋转并适合图像的最佳方法

我想听听您对实现我需要的结果的最佳方法的想法。输入将是一个字符串。我需要在整个图像中复制它,考虑到应该旋转文本。如果它会自动适应图像(至少部分),那就太好了。图像尺寸和输入字符串一样是动态的。因此,假设我们输入了尺寸为 800x600 的图像并输入了“文本字符串”。结果应该类似于附加图像(原始示例)。

我想使用一些维护良好的库,如imagemagick, jimp,gm等。

UPD:看起来jimp是唯一一个保持良好的,但如果我没有混淆任何东西,它看起来对图像格式的支持也很差。如果我至少能够创建我需要使用的图像,jimp那将是一个好的开始。

原始示例

0 投票
1 回答
869 浏览

javascript - 错误:找不到缓冲区的 MIME同时使用 Jimp 保存 cv.Mat() 的缓冲区

这是我产生错误的代码片段:

运行代码导致此错误: (node:2152) UnhandledPromiseRejectionWarning: E​​rror: Could not find MIME for Buffer <null>

0 投票
0 回答
63 浏览

javascript - 将原始图像和带水印的图像上传到 aws s3 存储桶的问题

我正在为我的项目开发功能,将输入的图像上传到 aws,使用 jimp 为其添加水印,然后将带水印的图像上传到 aws。所有功能都有效,但是,只有预加水印的图像被上传两次,而加水印的图像似乎在上传到 aws 后更新。我相信它与异步有关并且使用了 Promise,但由于我是 js 新手,我不太确定我是否遗漏了一些明显的东西。我在下面附上了我的三个功能。

0 投票
0 回答
449 浏览

jestjs - 运行测试在 Jimp.create() 上给出 ENAMETOOLONG: name too long 错误

我有一个带有打字稿的反应应用程序,我使用 Jest 作为测试运行程序。我正在尝试使用 Jimp 从 base64 字符串创建图像。它在运行应用程序时工作正常,但我的测试因错误而崩溃:

测试使用存储在文件中的字符串:

并且图像是importFromImage()使用 Jimp.create() 方法创建的(如果我console.log(base64Image)在浏览器中添加并复制/粘贴它,图像会正确显示):

我的客人是 Jimp 以某种方式尝试使用字符串作为路径加载文件,而不是从 base64 字符串创建它。我不知道这是配置问题还是来自 jest、jsdom、Jimp 或任何其他库的错误。

我的 jest.config

我的 tsconfig.json

0 投票
1 回答
28 浏览

node.js - 如何让一切按顺序发生(Node js)

我正在编写一个程序来从 CSV 文件中获取数据,复制图像,使用 Jimp 将文本(CSV 文件中的某人的名字)打印到该图像上,然后发送一封带有图像作为电子邮件附件的电子邮件(在 CSV 文件中找到电子邮件),删除图像,然后重复。

我得到的问题是:一切都以错误的顺序发生!我记录了所有事件,它在控制台中看起来像这样:

t.png是我复制的图片。同时,当我收到电子邮件时,图像附件上没有任何内容!这是一些伪代码来说明我的 js 文件的样子:

我用大量的超时设置了我的代码,而它所做的只是变得更加混乱。它在没有循环的情况下工作(有一些超时),但是一旦我添加了它,一切都搞砸了。我很难理解所有在线教程。

我对 Node.js 比较陌生,所以有人可以帮助我吗?

任何帮助是极大的赞赏!

0 投票
0 回答
352 浏览

javascript - 在 jimp 中创建一个新图像并保存为具有自定义调色板和位深度的位图

我可以创建一个新的图像对象并设置像素颜色,但生成的图像只是黑色而不是预期的灰色。对于位深度,我是否必须只包含一个具有 256 个元素的调色板,它将被保存为位深度 8?我可能应该打开保存的图像并检查调色板是否在那里。

0 投票
0 回答
178 浏览

javascript - 通过 Jimp(node.js 模块)合成图像时,它返回一个空白图像而不是合成图像

这是我的图像合成代码。在这种情况下,所有被称为“正面”的东西都被设置为不和谐的图像链接。当尝试将“正面”合成到我正在阅读的空白模板上时,它只输出空白模板,而不对其进行任何修改或合成。