【问题标题】:Javascript gzip decompressionJavascript gzip解压
【发布时间】:2017-09-27 07:17:48
【问题描述】:

我想在 JavaScript 中解压缩图像。我已经使用 gzip 用 C# 压缩了图像。如何在 JavaScript 中解压缩 gzipped 数据?

C#代码

public static byte[] Compress(byte[] raw)
{
    using (MemoryStream memory = new MemoryStream())
    {
        using (GZipStream gzip = new GZipStream(memory, CompressionMode.Compress, true))
        {
            gzip.Write(raw, 0, raw.Length);
        }
        return memory.ToArray();
    }
}

【问题讨论】:

  • 浏览器中没有内置可访问的 JS。您需要使用您选择的搜索引擎来查找图书馆。你的问题是浏览器还是 node.js 相关?顺便说一句:通常压缩是网络服务器的工作,所以你不需要显式压缩。
  • 查看此副本和原始stackoverflow.com/q/14630238/495455
  • 我们在谈论什么类型的图像?您是否检查过它们是否真的被压缩了,或者在“压缩”后它们是否变大了?为什么您认为需要“手动”压缩这些图像?
  • 这能回答你的问题吗? Decompress gzip and zlib string in javascript

标签: javascript c# gzip compression


【解决方案1】:

首先你必须在完成后关闭GZipStream

public static byte[] Compress(byte[] raw)
{
    using (MemoryStream memory = new MemoryStream())
    {
        using (GZipStream gzip = new GZipStream(memory, CompressionMode.Compress, true))
        {
            gzip.Write(raw, 0, raw.Length);
            gzip.Close();
        }
        return memory.ToArray();
    }
}

你可以使用pako在javascript中解压。

var base64Data = "COMPRESSED_BASE64_GZIP";
var compressData = atob(base64Data);
compressData = compressData.split('').map(function (e) {
    return e.charCodeAt(0);
});

var originalText = pako.ungzip(compressData, {to:"string"});

【讨论】:

    猜你喜欢
    • 2014-10-21
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多