Javascript有损PNG图像压缩库
我有一个(大部分)离线webapp,用户可以使用数字签名(使用此库:)注销 签名的图像大小约为50K,作为base64编码的json字符串发送到服务器 由于这些数据是通过卫星发送的,我希望将每个签名使用的带宽降至最低Javascript有损PNG图像压缩库,javascript,json,compression,Javascript,Json,Compression,我有一个(大部分)离线webapp,用户可以使用数字签名(使用此库:)注销 签名的图像大小约为50K,作为base64编码的json字符串发送到服务器 由于这些数据是通过卫星发送的,我希望将每个签名使用的带宽降至最低 是否有JavaScript库对PNG进行有损压缩以减小文件大小 PNG本质上是无损的。如果目标可以接受,请使用JPEG 如果没有,您可以尝试自己删除图像,然后用PNG无损压缩它。您也可以尝试使用PNG-8模式压缩到256色或更少颜色的调色板(这可能需要一个有损的步骤),这将产生一个
是否有JavaScript库对PNG进行有损压缩以减小文件大小 PNG本质上是无损的。如果目标可以接受,请使用JPEG
如果没有,您可以尝试自己删除图像,然后用PNG无损压缩它。您也可以尝试使用PNG-8模式压缩到256色或更少颜色的调色板(这可能需要一个有损的步骤),这将产生一个更小的文件。我知道这是一个非常老的问题,但我有一些可能会有所帮助。我假设签名板库使用本机Canvas.toDataURL函数 我用pngcheck工具查看了一个从画布保存的png,它使用RGBA-每像素4字节。出于您的目的,您可以使用灰度或调色板颜色png,这将是一个更小的大小,但仍然无损 大(2192 x 2800)灰度PNG:39KB 将相同的PNG绘制到画布(通过DrawImage),然后通过toDataURL保存回图像:184KB
此外,PNG中的数据是使用DEFLATE方法存储的-可以使用库,例如以压缩级别作为参数,基本上是以速度换取大小。我认为没有这样的事情,但您可以将画布导出为jpeg,或者对PNG数据进行DEFLATE。