当前位置: 首页 > 知识库问答 >
问题:

画布作为字符串最大压缩?

呼延衡
2023-03-14

我有一个巴布亚新几内亚图像,并得到了它的Base64巴布亚新几内亚字符串表示。它仍然很大,我想知道它是否能被进一步压缩。这可能吗?

出身背景

我使用html2CAN as创建当前网页的屏幕截图,将其转换为bas64(使用canvas.toDataURL())字符串并将其发送到服务器。但是,如果该字符串大小太大,服务器将返回异常。

以字符串的形式压缩画布最有效的方法是什么?

非常感谢您的帮助。提前谢谢。

共有3个答案

公冶安怡
2023-03-14

你可能无法从这里到达那里。您可能需要找到一种不同的方式来获取图像,而不是试图将其塞进URL。

对于小增益,您可以尝试pngCompup使PNG图像变小,或者更猛烈地通过降低分辨率和/或颜色数量来直接减小PNG图像的大小。

您还可以使用与Base64不同的编码方案,通过使用64个以上的编码字符来挤出更多的字符。您可以使用66个非保留字符,另外,根据URL的语法,您可能可以使用18个保留字符中的许多字符。

但除了改变形象本身,你只会实现微小的收获。

苍兴怀
2023-03-14

请记住,在大多数情况下,压缩将使用字典或其他方法来压缩数据。这将考虑在更大的压缩数据,如果基础字符串不能被压缩真的很好。你必须找到一个图片大小,这将导致在压缩后更小的大小!

也许另一种方法会有所帮助。如果您只发送URL,服务器不能为您执行html2画布吗?您能否将数据分割成更小的缓冲区,然后尝试发送它们?也许您应该循环数据的大小,将其分成64 KB缓冲区并传输它们(请记住,您需要在服务器端验证哪个缓冲区属于哪个数据包)。

否则尝试GZIP,LZW,LZMA算法。也许你也可以使用一个工具来压缩html2Canbas创建的图像?

司空默
2023-03-14

如果要压缩字符串,我建议使用压缩库,如http://rosettacode.org/wiki/LZW_compression#JavaScript在客户端进行压缩和http://webdevwonders.com/lzw-compression-and-decompression-with-javascript-and-php/在服务器端解压(假设您使用php)。该方法具有在客户端和服务器端同时工作的优点,并使用了广受好评的LZW算法。

 类似资料:
  • 我有一个web应用程序(ruby on rails),它发送一些YAML作为隐藏输入字段的值。 现在我想减小发送到浏览器的文本的大小。什么是传输最少数据的最有效的无损压缩形式?我可以在服务器端承担额外的压缩和解压缩成本。

  • 我有一个字符串s和一个整数k(子字符串长度),我正在尝试编写函数,这样它就可以找到长度为k的最小和最大的子字符串。并返回一个字符串,其中最小和最大的子字符串与换行符组合在一起。 到目前为止,我用下面的方法解决了这个问题,我编写了相同的代码来查找最小和最大的子字符串,然而,我想用流返回两个子字符串的单行代码。 我非常感谢任何建议,因为我现在正在学习lambda和stream。 那么,我该如何优雅地解

  • 我被一些有趣的任务困住了。我有3个字符串(hello,heavy&word)。需要计算每一个世界的总和并打印最大的世界和总和。用于计算-a=1,z=26。所以hello=50,heavy=61&word=60。最大的字符串是“Heavy”,我需要像“Heavy,61”那样打印出来。我找到了从一个字符串计算字符的代码:

  • 最近,我偶然发现了这个JEP 254:紧凑字符串,其基本目标是: 小结:对字符串采用更节省空间的内部表示。 根据我目前的经验,

  • 有人知道JavaFX中画布的最大尺寸吗?从一些测试中,它接缝为8192(与IE相同),在我看来,这很奇怪。也许,可以修改吗?

  • 问题内容: 我正在制作一种方法来读取整个类代码并对其进行一些处理。 我想要做的是获取方法的名称,并使用它创建一个字符串。 像removeProduct这样的东西 我将创建一个字符串“删除产品” 在大写情况下如何拆分名称方法?如何用每个单词的第一个字母作为大写字母来构建这个新字符串?我正在使用子字符串,是否有更简便更好的方法呢? ps:我确定我的巴西英语对标题没有帮助。如果有人能让它看起来更好,我将