vb.net – 是否有比DotNetZip或LZMA更好的字符串压缩库?
我有一个超过800个字符的数据字符串,我正在尝试压缩以用于QR码(我想要至少50%,但如果我把它减少到不到七百,可能会很高兴) .这是我正在尝试压缩的示例字符串,包含841个字符:
+hgoSuJm2ecydQj9mXXzmG6b951L2KIl0k9VGzIEtLztuWO2On9rt7DUlH0lXzG4iJ1yK0fA 97mDyclKSttIZXOxSPBf85LEN4PUUqj65aio5qwZttZSZ64wpnMFg/7Alt1R39IJvTmeYfBm Tuc1noMMcknlydFocwI8/sk2Sje5MR/nYNX0LPkQhzyi5vFJdrndqAgXYULsYrB3TJDAwvgs Kw9C5EJnrlqcb21zg17O2gU/C8KY0pz9RPzUl1Sb0rCP8iZCeis4YbQ5tuUppOfnO/X0Mosv SOQJ/bF9juKW8ocnQvNjsNxGV1gPkWWtiU2Old7Qm7FLDqL6kQKrq356yifs0NiMVGdvAg32 eugewuttCugoZASYOpQdwPu1jMxVO1fzF3zEy5w6tDlcfA2DZwa+un9/k8XZWAO/KVExy68q UtVRQxsIOKgpl/2tNw5DBAKbykKIkmizbsA2xtzqnYqld4kOdNMJh3YjlqWF9Bt8MZo7a+Q6 jgayr2rjpyIptc599DGtvp68ZNQ64TKNmiMnnyGMo3E+xW34G3RrsYnHGm+xJoLKoOJhacDu oZke1ycJgQv+Y61WPrvtFOVBxV5rvSzO0+8px5AWN3uCrrw1RmT5N14IVhh6BOtRjsifqIB2 dAKxzBNsvbXm1SzkuyqYiMnp5ivy3m2mPwc9GLsykx0FRIkhCYO8ins9E5ot9QvVnE155MFA 8FVwsP5uNdOF4EzQS2/h2QK3zb5Yq4Nftlo605Dd5vuVN/A7CUN38DaAKBxDKgqDzydfQnZw R0hTfMHNLgBJKNDSpz2P6almGlUJtXT6IYmzuU2Iaion8ePG 我已经尝试了以下三个库: >内置的.NET GzipStream > GzipStream > 7-zip的LZMA SDK 我遇到了压缩实际上使字符串更长的问题.我的理解是DeflateStream的开销最小,但它仍在添加字符.使用DotNetZip,我告诉它使用最大压缩: Imports Ionic.Zlib Shared Function CompressData(data As Byte()) As Array Dim msCompressed As MemoryStream = New MemoryStream ' I'm not sure if the last parameter on this next function should be ' true (for LeaveOpen),but it doesn't seem to affect it either way. Dim deflated As DeflateStream = New DeflateStream(msCompressed,_ CompressionMode.Compress,CompressionLevel.BestCompression,True) ' Write data to compression stream (which is linked to the memorystream) deflated.Write(data,data.Length) deflated.Flush() deflated.Close() Return msCompressed.ToArray End Function 我只是认为这会变得更糟,因为我会有更多的数据.对于这个长度的字符串,是否有更好的压缩算法?压缩通常只适用于较长的字符串吗?不幸的是,数据是这样的,我不能使用替代字符来处理数据. 此外,我能够使用字母数字编码的QR码,还是我必须使用二进制?我不认为我可以,每http://www.qrme.co.uk/qr-code-forum.html?func=view&catid=3&id=324,但我想确定. 谢谢你的帮助!
乍一看,您似乎正在尝试获取一些数据并使用此过程将其转换为QR代码:
– >加密 – > base64编码 – >压缩 – >制作二维码. 我建议改用这个过程: – >压缩 – >加密 – >制作二维码. 当你想要加密和压缩时,几乎每个人都建议压缩然后加密. “我能够使用字母数字编码进行QR码,还是必须使用二进制?” 大多数加密算法都会产生二进制输出,因此将其直接转换为二进制编码的QR码最为简单. “有没有更好的压缩算法” 对于加密数据,不可以.无论您使用何种算法,都可以(几乎可以肯定)压缩加密良好的数据. 如果按照建议进行压缩然后加密,那么各种压缩算法的有效性取决于特定类型的输入数据,而不取决于压缩后对其执行的操作. 您的输入数据是什么类型的数据? 假设您的输入数据缺少ASCII文本, 另一方面,如果您的输入数据是某种照片, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |