Javascript 节点画布:以隔行/逐行方式输出PNG文件
Javascript 节点画布:以隔行/逐行方式输出PNG文件,javascript,node.js,libpng,Javascript,Node.js,Libpng,node canvas是依赖于Cairo的HTML5 canvas库的node.js版本。我的应用程序根据发送到应用程序的数据创建一组PNG文件 node canvas提供了两个函数toBuffer()和toDataURL(),它们将原始PNG或Base64编码的PNG输出为字符串,我可以将其发送到浏览器。但是,无法在库中添加对隔行扫描的支持 我想扩展库的功能并添加对交错PNG的支持。我有一个字符串中的原始PNG数据,还有一个图像像素数组(如果需要的话)。我不了解PNG编码是如何工作的。有人能告
node canvas
是依赖于Cairo的HTML5 canvas库的node.js版本。我的应用程序根据发送到应用程序的数据创建一组PNG文件
node canvas
提供了两个函数toBuffer()
和toDataURL()
,它们将原始PNG或Base64编码的PNG输出为字符串,我可以将其发送到浏览器。但是,无法在库中添加对隔行扫描的支持
我想扩展库的功能并添加对交错PNG的支持。我有一个字符串中的原始PNG数据,还有一个图像像素数组(如果需要的话)。我不了解PNG编码是如何工作的。有人能告诉我转换数据所需的算法吗?非交错原始PNG数据或像素阵列,并将其转换为交错/渐进PNG
这是我正在构建的图形计算器应用程序的一个必要步骤,它可以绘制复杂的方程。与为我的应用程序从上到下加载的非交错PNG相比,拥有一个快速显示并随时间锐化的模糊图像会更好
谢谢 无法将非隔行原始PNG数据转换为隔行PNG流。隔行扫描和非隔行扫描PNG是两种不同的PNG编码方式(它们在像素流顺序上基本不同,但之后会应用过滤器压缩,因此不能简单地更改最终流以在隔行扫描和非隔行扫描模式之间切换)。生成交错PNG是PNG编码器的工作,该编码器用于从原始图像像素写入PNG文件(或流)
尽管如此,我还是建议你不要使用交错图像;压缩效率受到影响(特别是PNG),用户体验的优势至少值得商榷。如今,隔行PNG很少使用。“最好是有一个模糊的图像快速显示并锐化。”隔行PNG几乎总是一个坏主意。如