node-canvas是依赖于Cairo的HTML5画布库的Node.js版本。我的应用程序根据发送到应用程序的数据创建了一堆PNG文件。
node-canvas提供了两个函数toBuffer()和toDataURL(),它们将原始PNG或Base64编码的PNG输出为我可以发送到浏览器的字符串。但是,无法在库中添加对隔行扫描的支持。
我想扩展这个库的功能,并添加对交错PNG的支持。我有一个字符串形式的原始PNG数据,还有一个图像的像素数组(如果需要)。我不了解PNG编码是如何工作的。谁能告诉我,我需要用来转换我的数据的算法,无论是非隔行扫描的原始PNG数据还是像素阵列,并将其转换为隔行扫描/逐行扫描的PNG?
这是我正在构建的绘制复杂方程式的图形计算器应用程序的必要步骤。这将是一件好事,有一个模糊的图像,出现得很快,并随着时间的推移,而不是一个非交错的PNG,从上到下加载我的应用程序。
谢谢!
发布于 2012-07-31 03:08:39
不能将非隔行扫描的原始PNG数据转换为隔行扫描的PNG流。隔行扫描和非隔行扫描PNG是两种不同的PNG编码方式(它们在像素流排序方面基本不同,但之后会应用过滤器压缩,因此您不能简单地更改最终流以在隔行扫描和非隔行扫描模式之间切换)。生成交错的PNG是PNG编码器的工作,PNG编码器用于从原始图像像素写入PNG文件(或流)。
然而,我建议你不要隔行扫描图像;压缩效率会受到影响(特别是使用PNG),而且对用户体验的好处至少是有争议的。See eg。今天,交错的PNG很少使用。
https://stackoverflow.com/questions/11696488
复制相似问题