Search code examples
javascriptgzipzlibcompressiontmx

Decompress gzip and zlib string in javascript


I want to get compress layer data from tmx file . Who knows libraries for decompress gzip and zlib string in javascript ? I try zlib but it doesn't work for me . Ex , layer data in tmx file is :

  <data encoding="base64" compression="zlib">
       eJztwTEBAAAAwqD1T20JT6AAAHgaCWAAAQ==
  </data>

My javascript code is

var base64Data = "eJztwTEBAAAAwqD1T20JT6AAAHgaCWAAAQ==";
var compressData = atob(base64Data);
var inflate = new Zlib.Inflate(compressData);
var output = inflate.decompress();

It runs with displays message error "unsupported compression method" . But I try decompress with online tool as http://i-tools.org/gzip , it returns correct string.


Solution

  • I can solve my problem by zlib . I fix my code as below

    var base64Data = "eJztwTEBAAAAwqD1T20JT6AAAHgaCWAAAQ==";
    var compressData = atob(base64Data);
    var compressData = compressData.split('').map(function(e) {
        return e.charCodeAt(0);
    });
    var inflate = new Zlib.Inflate(compressData);
    var output = inflate.decompress();