在 Node.js 中读取 PNG 图像

2023-12-22

Node.js 中有没有一种简单的方法来读取 PNG 文件并获取图像的像素?就像是节点图像 https://github.com/pkrumins/node-image,但另一种方式:)

我浏览了列出的图书馆https://github.com/joyent/node/wiki/modules#wiki-graphics https://github.com/joyent/node/wiki/modules#wiki-graphics,但它们要么是提供裁剪和调整大小的命令行工具的简单包装,要么是复杂的绘图工具,例如node-canvas.


这个可以进行 PNG 解码和编码,无需原生依赖:

pngjs - 用于 Node.js 的 PNG 编码器/解码器,没有本机依赖项。 https://github.com/lukeapage/pngjs

反转 PNG 颜色的示例:

var fs = require('fs'),
PNG = require('pngjs').PNG;

fs.createReadStream('in.png')
  .pipe(new PNG())
  .on('parsed', function() {

    for (var y = 0; y < this.height; y++) {
        for (var x = 0; x < this.width; x++) {
            var idx = (this.width * y + x) << 2;

            // invert color
            this.data[idx] = 255 - this.data[idx]; // R
            this.data[idx+1] = 255 - this.data[idx+1]; // G
            this.data[idx+2] = 255 - this.data[idx+2]; // B

            // and reduce opacity
            this.data[idx+3] = this.data[idx+3] >> 1;
        }
    }

    this.pack().pipe(fs.createWriteStream('out.png'));
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Node.js 中读取 PNG 图像 的相关文章

随机推荐

  • sprintf 代表什么?

    我尝试在谷歌和维基百科上查找 但找不到答案 有谁知道 sprintf 或 printf 代表什么 是某个东西的缩写吗 Thanks 字符串打印格式 ed IE 使用给定格式打印到字符串
  • 使用匿名类型集合填充 WPF 中的 DataGrid

    我正在使用匿名类型的集合填充数据网格 我正在设置DataGrid s DataContext财产 并且没有错误 数据网格中没有显示任何内容 我尝试对定义的对象集合进行相同的操作 但再次没有显示任何内容 请您指导我该怎么做 Thanks ED
  • 奇怪的“字符串索引超出范围:0”错误

    我有一个巨大的应用程序 在某些时候 当涉及重定向时 我收到了这个奇怪的错误 Caused by java lang StringIndexOutOfBoundsException with message String index out
  • 编写电子邮件嗅探器

    我有兴趣编写一个电子邮件嗅探器 将通过基于网络的客户端发送的所有电子邮件保存到高清 但我不知道如何做到这一点 如何在加密之前捕获 HTTPS 邮件 我真的很感激一些有用的信息 我在网上找不到任何信息 有一个名为 HTTP Analyzer
  • 是否有 shim 或 polyfill 可以解决 Chrome 对数据列表的 512 限制?

    使用绑定到数据列表的输入标签实现了预输入 当用户滚动浏览条目时 Chrome 不会显示第 512 个匹配项之外的任何条目 整个数据列表仅包含大约 950 个条目 使用适用于 Windows 的 Chrome 版本 76 0 3809 100
  • 在大表中查找半径MySQL(纬度经度)内的点的最快方法是什么

    目前我有几个包含 100k 行的表 我正在尝试查找如下数据 SELECT SQRT POW 69 1 latitude 49 1044302 2 POW 69 1 122 801094 longitude COS latitude 57 3
  • ng-click 和 ng-touch 移动设备

    我有一个用 AngularJS 编写的 cordova 移动应用程序 在我的应用程序中添加 ng touch 会使某些 html 行为无法正常工作 此问题的一个示例是 当复选框包装在附有 ng click 的 HTML 元素中时 该复选框不
  • 隐藏的表单元素是否被提交?

    如果 jQuery 的toggle 用于 div 包含表单元素 这些表单元素是否会随表单一起提交 即使它们是隐藏的 我的代码 尽管这个特定问题可能不需要 cms loop title click function ctg this attr
  • 使用 C 的原始 libcurl JSON PUT 请求

    我目前正在编写一个类似 REST 的客户端 只需要执行 PUT 请求 Problem 运行该程序并没有在 URL 的 API 上给出正确的结果 我不知道为什么 使用curl easy perform curl 在调用时不会抛出错误 但 UR
  • 我应该在哪里设置 DataContext - 代码隐藏或 xaml?

    老实说 我搜索并阅读了所有似乎相关的 相关问题 我确实希望我没有 错过 其他地方的这个问题 但这里是 至少 有两种不同的方法来设置 DataContext 可以使用 XAML 也可以使用隐藏代码 什么是 最佳实践 为什么 我倾向于在 XAM
  • 如何在 MongoDB 上模拟“错误”事件

    我正在尝试为 NoFlo 组件 由同事编写 编写一个测试用例 该组件有一个 连接 输入端口和一个 错误 输出端口 例如 var self this a NoFlo Component var mongodb null self inPort
  • Meteor 允许更新插入吗?

    当我尝试更新插入集合时 在控制台中出现此错误 更新失败 访问被拒绝 受限集合中不允许更新插入 以下是我指定的允许规则 if Meteor isClient Meteor subscribe customers customers Custo
  • WinForms - Form.DoubleBuffered 属性是否影响放置在该窗体上的控件?

    Form具有 DoubleBuffered 属性 布尔值 继承自 Control 如果将此设置为 true 则放置在窗体上的所有控件是否都会由于位于窗体上而以双缓冲方式绘制到屏幕上 或者您需要担心它们自己的 DoubleBuffered 属
  • 混合托管/非托管 C++?

    我有一个用标准 C 编写的库 我还有一个用 C 编写的 Net Windows 窗体应用程序 它利用非托管库 我知道我可以只使用 pinvoke 但我的 C 完全是面向对象的 我真的不想乱搞编组等 有没有一种方法可以让我创建一个新的托管 C
  • codeigniter 的自定义配置文件

    对 CodeIgniter 非常陌生 尝试创建自定义配置文件以将特殊变量加载到我的应用程序中 in application config 我创建custom php并将以下代码放入该文件中 然后我就打开了application config
  • 在第三方、非 AMD 库中使用 AMD 定义的模块

    我有一个图书馆 叫它SomeLib 定义为支持各种模块加载器 function global factory if typeof define function define amd define factory else if typeo
  • 可以对 header(Location: value) 中的值进行 urlencode 吗?

    这是PHP I do header Location url 并且效果很好 但如果我这样做 header Location urlencode url 我被重定向到一些奇怪的地方 比如 url url 当然 它给了我一个 404 错误 但我
  • 这会导致万向节锁定吗?

    我制作了一个非常简单的 3D 场景 在世界坐标中有 5 个点 我想在场景中导航 因此我定义了一个具有 UP 和 OUT 向量的相机 有了这些信息 我在每一帧中生成一个旋转矩阵 我将其应用于向量以获得相机坐标 问题是 我已经读到使用此方法时会
  • 比较两个枚举*类型*的等价性?

    在我的应用程序中 我有两个等效的enums 一个位于 DAL 中 另一个位于服务契约层中 它们具有相同的名称 但位于不同的命名空间中 并且应该具有相同的成员和值 我想编写一个单元测试来强制执行此操作 到目前为止 我已经得到以下内容 publ
  • 在 Node.js 中读取 PNG 图像

    Node js 中有没有一种简单的方法来读取 PNG 文件并获取图像的像素 就像是节点图像 https github com pkrumins node image 但另一种方式 我浏览了列出的图书馆https github com joy