节点画布:将PNG文件输出为交错/逐行扫描
node-canvas: output PNG file as interlaced/progressive
node-canvas
是HTML5画布库的Node.js版本,它依赖于Cairo。我的应用程序会根据发送到应用程序的数据创建一堆PNG文件。
node-canvas
提供了两个函数toBuffer()
和toDataURL()
,它们将原始PNG或Base64编码的PNG输出为字符串,我可以将其发送到浏览器。但是,无法在库中添加对交错的支持。
我想扩展库的功能,并添加对交错PNG的支持。我有一个字符串中的原始PNG数据,还有一个图像的像素数组(如果需要的话)。我不了解PNG编码是如何工作的。有人能给我指一下我需要使用的算法来转换我的数据吗,无论是非交错的原始PNG数据还是像素阵列,并将其转换为交错/逐行PNG?
这是我正在构建的绘制复杂方程的绘图计算器应用程序的必要步骤。如果有一个模糊的图像能快速出现,并随着时间的推移而锐化,这将比我的应用程序从上到下加载的非交错PNG要好。
谢谢!
无法将非交错的原始PNG数据转换为交错的PNG流。隔行扫描和非隔行扫描PNG是两种不同的PNG编码方式(它们在像素流顺序上基本不同,但之后会应用滤波器压缩,因此您不能简单地更改最终流以在隔行扫描模式和非隔行式模式之间切换)。生成交错的PNG是PNG编码器的工作,它用于从原始图像像素写入PNG文件(或流)。
尽管如此,我还是建议您不要使用交错图像;压缩效率受到影响(特别是PNG),并且对于用户体验的优势至少是有争议的。现在,交错的PNG很少被使用。
相关文章:
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 使用Javascript从一个文本区域逐行解析.subsr(0,6)到另一个文本区
- 从 Node.js 模块中的缓冲区实例中逐行读取字符串
- 读取制表符分隔的文件,逐行读取,而不是使用制表符分隔拆分每一行
- 节点画布:将PNG文件输出为交错/逐行扫描
- 如何在Web SQL数据库中逐行插入文本文件
- 节点命令行详细输出
- 如何在“逐行”npm 中遍历所有行
- 动画图表js(线),动画图表逐行绘制
- NodeJS - 逐行读取函数 + while 循环
- 如果可能的话,我需要帮助了解这个jQuery过滤器函数是如何工作的,逐行工作
- 节点.JS逐行读取字符串
- 逐行缩进 Javascript 文件
- 逐行阅读文本区域中的文本
- “没有光纤运行”,同时尝试逐行解析 csv
- D3 - 以设置的延迟逐行加载和显示数据
- j查询到特定元素后按类逐行目标表
- 如何使用谷歌应用脚本和谷歌工作表数据逐行发送html电子邮件
- 使用 javaScript 逐行读取文件
- NodeJS 流解析并根据承诺结果逐行写入 json