How to read binary data in IE9?

后端 未结 2 1639
梦谈多话
梦谈多话 2021-01-31 19:15

I\'m working on some Javascript code that creates an alpha mask of a image using paths embedded by Photoshop. The onload handler of a IMG tag would call a clip(this). The functi

2条回答
  •  广开言路
    2021-01-31 19:47

    I had same issue while playing with pdf.js library, and solution I found is to make my own Uint8Array, below is code which you need. All credits goes to notmasteryet@github and full code can be found here https://gist.github.com/1057924

    (function() {
      try {
        var a = new Uint8Array(1);
        return; //no need
      } catch(e) { }
    
      function subarray(start, end) {
        return this.slice(start, end);
      }
    
      function set_(array, offset) {
        if (arguments.length < 2) offset = 0;
        for (var i = 0, n = array.length; i < n; ++i, ++offset)
          this[offset] = array[i] & 0xFF;
      }
    
      // we need typed arrays
      function TypedArray(arg1) {
        var result;
        if (typeof arg1 === "number") {
           result = new Array(arg1);
           for (var i = 0; i < arg1; ++i)
             result[i] = 0;
        } else
           result = arg1.slice(0);
        result.subarray = subarray;
        result.buffer = result;
        result.byteLength = result.length;
        result.set = set_;
        if (typeof arg1 === "object" && arg1.buffer)
          result.buffer = arg1.buffer;
    
        return result;
      }
    
      window.Uint8Array = TypedArray;
      window.Uint32Array = TypedArray;
      window.Int32Array = TypedArray;
    })();
    

提交回复
热议问题