Files
mostlymatter/vendor/github.com/oov/psd/compress.inc.js
Jesús Espino ce82ff7e2b Add psd preview support (#15078)
* Add psd preview support

* Adding required vendor files

* Adding oov/psd license to NOTICE.txt file

* Adding the license notice for gopherjs to the NOTICE.txt

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2020-07-31 14:46:22 +02:00

42 строки
1.3 KiB
JavaScript

$global['$github.com/oov/psd$'] = {
decodePackBitsLines: function(buf, lines, large) {
var r = new Uint32Array(lines);
var lens = new DataView(buf.buffer);
if (large) {
for (var i = 0; i < lines; ++i) {
r[i] = lens.getUint32(i << 2, false);
}
} else {
for (var i = 0; i < lines; ++i) {
r[i] = lens.getUint16(i << 1, false);
}
}
return r;
},
decodePackBits: function(dest, buf, lens) {
var ofs = 0,
d = 0;
for (var i = 0; i < lens.length; ++i) {
for (var j = 0, ln = lens[i]; j < ln;) {
if (buf[ofs] <= 0x7f) {
var l = buf[ofs++] + 1;
for (var k = 0; k < l; ++k) {
dest[d++] = buf[ofs++];
}
j += l + 1;
continue;
}
if (buf[ofs] == 0x80) {
ofs++;
continue;
}
for (var k = 0, l = 256 - buf[ofs++] + 1, c = buf[ofs++]; k < l; ++k) {
dest[d++] = c;
}
j += 2;
}
}
return true;
}
}