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

javascript - 使用 Jimp 处理图像时,NodeJS 达到 6Gb

我需要以像素比例编辑 34 000 张照片,所以我编写了一个程序,如果图像中的像素超过特定的 RBG 值(240、240、240),则替换它们,基本上我只想隔离白色像素并设置所有内容否则为黑色。这是我的代码:

现在,这对一些图像非常有效,但是在我提到的 34 000 个图像文件夹等大型数据集上使用它时问题开始出现。

作为参考,我在带有 PM2 和--no-autorestart标志的 CentOS8 上运行此代码。当不使用 PM2 而只是使用node <file>时,进程被杀死并在控制台中输出“被杀死”,它不会显示“内存不足”。我已经尝试调试了很长一段时间,但没有办法阻止这种情况,我尝试不使用 Jimp,而是使用一个名为image-pixels的包,它产生了相同的结果。

有没有办法防止这种情况发生,或者我必须在较小的文件夹(例如每个 1000 个图像)上手动执行它?

0 投票
1 回答
192 浏览

javascript - 我如何获得未更改的屏幕截图并将其保存到 NodeJS 的文件中?

我有一个程序可以获取robotjs屏幕截图并将其保存到文件中,例如1 fps 的实时流。

在当前时刻,每一秒它:

  1. 截屏
  2. 从中创建一个 Jimp 实例
  3. 将其写入screen.png

我想不出任何明显的原因来解释为什么在我截屏时会导致某些颜色反转。

例如,当我在访问 Stack Overflow 后查看图像时,Stack Overflow 图标看起来是蓝色而不是通常的橙色,然后等待一秒钟(以便它可以截取我看截图的截图),在截图中在屏幕截图中,颜色恢复正常——原来的橙色 SO 标志。截图中的截图又是蓝色的,以此类推。需要注意的重要一点是,并非所有颜色都是反转的 - 徽标是反转的,但白色背景不是。

app.jsnode app.js. 我尝试的一件事是从 robotsjs 屏幕截图创建一个 Jimp 实例,然后从 Jimp 实例创建一个 Jimp 实例,这样希望颜色会反转回来,但它看起来是一样的。我猜这个问题与robotjs图像数据有关,但我不能确定。

如何获得未更改的屏幕截图并将其保存到文件中?

编辑:

这是一个例子:

正常(非反转)颜色:

正常(非反转)颜色

反转颜色:

反转颜色

0 投票
0 回答
187 浏览

node.js - jimp.loadFont 函数使用元音字符使非英语(泰语)字体变得丑陋

0 投票
0 回答
22 浏览

node.js - 数字之间的反斜杠混淆了 Tesseract

我想从图像文件中提取数据。到目前为止,我可以一致地读取 80% 以上的数据,但是 Tesseract 给我的数字之间的反斜杠的值不正确,例如:

比赛赢/输 = 1/1

结果有时会给我M。我试过了

但仍然没有运气。这是我的预处理代码,我正在使用 Jimp

0 投票
0 回答
18 浏览

node.js - 为什么这个 Jimp gif 生成器不起作用?

我的目标是一个从单个图像生成彩虹 gif 的模块。我不明白为什么这段代码不起作用。有人可以帮忙吗?谢谢!

0 投票
0 回答
135 浏览

node.js - 如何在Nodejs中将tiff图像文件转换为png文件

我已经尝试使用 jimp 节点包,它给出了错误:-('JPEG 错误:意外标记 ffd9')请在此处添加您有价值的解决方案。

0 投票
0 回答
226 浏览

node.js - 错误找不到缓冲区的 MIME吉普

嗨,我正在尝试通过服务器之间的 http 发送图像缓冲区,从服务器 A 到服务器 B。

我的服务器 B 片段如下所示:

我的服务器一个片段是这样的:

换句话说,服务器 A 将图像发送到服务器 B 并在图像上附加一些文本,然后将图像发送回服务器 A,并提示问题:

图像已正确发送到服务器 B,因为我能够将其保存在本地。但是,当我尝试将其发送回服务器 A 时,我就卡住了。

你认为这里发生了什么,我将如何解决它?非常感谢

0 投票
0 回答
57 浏览

javascript - 如何在 Jimp 中打印表情符号 - Node Js | 吉普

我正在构建一个 nodejs 应用程序,它通过文本生成推文,并且一些目标推文在文本或用户名中包含表情符号。但是当我尝试在 Jimp 中打印这些表情符号时,它会将表情符号转换为“??”。我已经尝试使用“NotoColorEmoji”和“NotoEmoji-Regular”字体,但是当我尝试将它们转换为 .fnt 文件时,它们显示为空白方块。

这是转换后字体的样子: 转换 后的字体

如何让 Jimp 在print()函数中显示这些表情符号?

0 投票
0 回答
56 浏览

node.js - Jimp 裁剪图像

是否可以使用 jimp js 通过背景颜色裁剪图像?

示例(原始图像):原始图像

(裁剪图像):裁剪图像

这是我的代码:

0 投票
0 回答
76 浏览

javascript - 如何使用 Jimp 在 Node.js 上对图像进行着色以达到所需的平均 RGB?

  1. 我有一个彩色(或黑白)图像作为 Base64 字符串
  2. 我有一个目标 RGB
  3. 我想为该图像着色,以便在将其调整为更小的尺寸时,它的平均RGB 非常接近我的目标 RGB

你可以在这里看到下面的代码

我正在使用的 Jimp 库提供了各种颜色处理方法,但现在我只是在尝试mix。它还提供brighten, lighten,desaturate等。

我正在尝试找到方法和值的正确组合以达到所需的deltaResult <= 2.

有可能吗?怎么做?现在我被困住了,因为我对颜色处理并不熟悉。

我意识到增加色调的不透明度显然会降低deltaResult到所需的值。但是,增加不透明度也会降低内容的清晰度,因为它基本上会将图像“变暗”为所需的颜色,直到您主要看到所需颜色而不是照片的实际内容(在我的情况下是一张脸) . 我认为不可能同时保持内容的清晰度,同时拥有接近所需颜色的平均 RGB。

增加MIX_OPACITY链接中使用的代码会降低deltaResult但会损害清晰度,反之亦然。