V1_commit_RGC
This commit is contained in:
10
SuiviREForamteur/node_modules/fast-png/lib/helpers/applyUnfilter.d.ts
generated
vendored
Normal file
10
SuiviREForamteur/node_modules/fast-png/lib/helpers/applyUnfilter.d.ts
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* Apllies filter on scanline based on the filter type.
|
||||
* @param filterType - The filter type to apply.
|
||||
* @param currentLine - The current line of pixel data.
|
||||
* @param newLine - The new line of pixel data.
|
||||
* @param prevLine - The previous line of pixel data.
|
||||
* @param passLineBytes - The number of bytes in the pass line.
|
||||
* @param bytesPerPixel - The number of bytes per pixel.
|
||||
*/
|
||||
export declare function applyUnfilter(filterType: number, currentLine: Uint8Array, newLine: Uint8Array, prevLine: Uint8Array, passLineBytes: number, bytesPerPixel: number): void;
|
||||
35
SuiviREForamteur/node_modules/fast-png/lib/helpers/applyUnfilter.js
generated
vendored
Normal file
35
SuiviREForamteur/node_modules/fast-png/lib/helpers/applyUnfilter.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.applyUnfilter = applyUnfilter;
|
||||
const unfilter_1 = require("./unfilter");
|
||||
/**
|
||||
* Apllies filter on scanline based on the filter type.
|
||||
* @param filterType - The filter type to apply.
|
||||
* @param currentLine - The current line of pixel data.
|
||||
* @param newLine - The new line of pixel data.
|
||||
* @param prevLine - The previous line of pixel data.
|
||||
* @param passLineBytes - The number of bytes in the pass line.
|
||||
* @param bytesPerPixel - The number of bytes per pixel.
|
||||
*/
|
||||
function applyUnfilter(filterType, currentLine, newLine, prevLine, passLineBytes, bytesPerPixel) {
|
||||
switch (filterType) {
|
||||
case 0:
|
||||
(0, unfilter_1.unfilterNone)(currentLine, newLine, passLineBytes);
|
||||
break;
|
||||
case 1:
|
||||
(0, unfilter_1.unfilterSub)(currentLine, newLine, passLineBytes, bytesPerPixel);
|
||||
break;
|
||||
case 2:
|
||||
(0, unfilter_1.unfilterUp)(currentLine, newLine, prevLine, passLineBytes);
|
||||
break;
|
||||
case 3:
|
||||
(0, unfilter_1.unfilterAverage)(currentLine, newLine, prevLine, passLineBytes, bytesPerPixel);
|
||||
break;
|
||||
case 4:
|
||||
(0, unfilter_1.unfilterPaeth)(currentLine, newLine, prevLine, passLineBytes, bytesPerPixel);
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unsupported filter: ${filterType}`);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=applyUnfilter.js.map
|
||||
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/applyUnfilter.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/applyUnfilter.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"applyUnfilter.js","sourceRoot":"","sources":["../../src/helpers/applyUnfilter.ts"],"names":[],"mappings":";;AAgBA,sCAuCC;AAvDD,yCAMoB;AACpB;;;;;;;;GAQG;AACH,SAAgB,aAAa,CAC3B,UAAkB,EAClB,WAAuB,EACvB,OAAmB,EACnB,QAAoB,EACpB,aAAqB,EACrB,aAAqB;IAErB,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,CAAC;YACJ,IAAA,uBAAY,EAAC,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,CAAC;YACJ,IAAA,sBAAW,EAAC,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;YAChE,MAAM;QACR,KAAK,CAAC;YACJ,IAAA,qBAAU,EAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,CAAC;YACJ,IAAA,0BAAe,EACb,WAAW,EACX,OAAO,EACP,QAAQ,EACR,aAAa,EACb,aAAa,CACd,CAAC;YACF,MAAM;QACR,KAAK,CAAC;YACJ,IAAA,wBAAa,EACX,WAAW,EACX,OAAO,EACP,QAAQ,EACR,aAAa,EACb,aAAa,CACd,CAAC;YACF,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
|
||||
3
SuiviREForamteur/node_modules/fast-png/lib/helpers/crc.d.ts
generated
vendored
Normal file
3
SuiviREForamteur/node_modules/fast-png/lib/helpers/crc.d.ts
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import type { IOBuffer } from 'iobuffer';
|
||||
export declare function checkCrc(buffer: IOBuffer, crcLength: number, chunkName: string): void;
|
||||
export declare function writeCrc(buffer: IOBuffer, length: number): void;
|
||||
39
SuiviREForamteur/node_modules/fast-png/lib/helpers/crc.js
generated
vendored
Normal file
39
SuiviREForamteur/node_modules/fast-png/lib/helpers/crc.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.checkCrc = checkCrc;
|
||||
exports.writeCrc = writeCrc;
|
||||
const crcTable = [];
|
||||
for (let n = 0; n < 256; n++) {
|
||||
let c = n;
|
||||
for (let k = 0; k < 8; k++) {
|
||||
if (c & 1) {
|
||||
c = 0xedb88320 ^ (c >>> 1);
|
||||
}
|
||||
else {
|
||||
c = c >>> 1;
|
||||
}
|
||||
}
|
||||
crcTable[n] = c;
|
||||
}
|
||||
const initialCrc = 0xffffffff;
|
||||
function updateCrc(currentCrc, data, length) {
|
||||
let c = currentCrc;
|
||||
for (let n = 0; n < length; n++) {
|
||||
c = crcTable[(c ^ data[n]) & 0xff] ^ (c >>> 8);
|
||||
}
|
||||
return c;
|
||||
}
|
||||
function crc(data, length) {
|
||||
return (updateCrc(initialCrc, data, length) ^ initialCrc) >>> 0;
|
||||
}
|
||||
function checkCrc(buffer, crcLength, chunkName) {
|
||||
const expectedCrc = buffer.readUint32();
|
||||
const actualCrc = crc(new Uint8Array(buffer.buffer, buffer.byteOffset + buffer.offset - crcLength - 4, crcLength), crcLength); // "- 4" because we already advanced by reading the CRC
|
||||
if (actualCrc !== expectedCrc) {
|
||||
throw new Error(`CRC mismatch for chunk ${chunkName}. Expected ${expectedCrc}, found ${actualCrc}`);
|
||||
}
|
||||
}
|
||||
function writeCrc(buffer, length) {
|
||||
buffer.writeUint32(crc(new Uint8Array(buffer.buffer, buffer.byteOffset + buffer.offset - length, length), length));
|
||||
}
|
||||
//# sourceMappingURL=crc.js.map
|
||||
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/crc.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/crc.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"crc.js","sourceRoot":"","sources":["../../src/helpers/crc.ts"],"names":[],"mappings":";;AAgCA,4BAmBC;AAED,4BAWC;AA9DD,MAAM,QAAQ,GAAa,EAAE,CAAC;AAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,SAAS,SAAS,CAChB,UAAkB,EAClB,IAAgB,EAChB,MAAc;IAEd,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,GAAG,CAAC,IAAgB,EAAE,MAAc;IAC3C,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAgB,QAAQ,CACtB,MAAgB,EAChB,SAAiB,EACjB,SAAiB;IAEjB,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,GAAG,CACnB,IAAI,UAAU,CACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,EACjD,SAAS,CACV,EACD,SAAS,CACV,CAAC,CAAC,uDAAuD;IAC1D,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,0BAA0B,SAAS,cAAc,WAAW,WAAW,SAAS,EAAE,CACnF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,QAAQ,CAAC,MAAgB,EAAE,MAAc;IACvD,MAAM,CAAC,WAAW,CAChB,GAAG,CACD,IAAI,UAAU,CACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAC1C,MAAM,CACP,EACD,MAAM,CACP,CACF,CAAC;AACJ,CAAC"}
|
||||
8
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceAdam7.d.ts
generated
vendored
Normal file
8
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceAdam7.d.ts
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
import type { DecodeInterlaceNullParams } from './decodeInterlaceNull';
|
||||
/**
|
||||
* Decodes the Adam7 interlaced PNG data.
|
||||
*
|
||||
* @param params - DecodeInterlaceNullParams
|
||||
* @returns - array of pixel data.
|
||||
*/
|
||||
export declare function decodeInterlaceAdam7(params: DecodeInterlaceNullParams): Uint8Array<ArrayBuffer> | Uint16Array<ArrayBuffer>;
|
||||
79
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceAdam7.js
generated
vendored
Normal file
79
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceAdam7.js
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.decodeInterlaceAdam7 = decodeInterlaceAdam7;
|
||||
const applyUnfilter_1 = require("./applyUnfilter");
|
||||
const uint16 = new Uint16Array([0x00ff]);
|
||||
const uint8 = new Uint8Array(uint16.buffer);
|
||||
const osIsLittleEndian = uint8[0] === 0xff;
|
||||
/**
|
||||
* Decodes the Adam7 interlaced PNG data.
|
||||
*
|
||||
* @param params - DecodeInterlaceNullParams
|
||||
* @returns - array of pixel data.
|
||||
*/
|
||||
function decodeInterlaceAdam7(params) {
|
||||
const { data, width, height, channels, depth } = params;
|
||||
// Adam7 interlacing pattern
|
||||
const passes = [
|
||||
{ x: 0, y: 0, xStep: 8, yStep: 8 }, // Pass 1
|
||||
{ x: 4, y: 0, xStep: 8, yStep: 8 }, // Pass 2
|
||||
{ x: 0, y: 4, xStep: 4, yStep: 8 }, // Pass 3
|
||||
{ x: 2, y: 0, xStep: 4, yStep: 4 }, // Pass 4
|
||||
{ x: 0, y: 2, xStep: 2, yStep: 4 }, // Pass 5
|
||||
{ x: 1, y: 0, xStep: 2, yStep: 2 }, // Pass 6
|
||||
{ x: 0, y: 1, xStep: 1, yStep: 2 }, // Pass 7
|
||||
];
|
||||
const bytesPerPixel = Math.ceil(depth / 8) * channels;
|
||||
const resultData = new Uint8Array(height * width * bytesPerPixel);
|
||||
let offset = 0;
|
||||
// Process each pass
|
||||
for (let passIndex = 0; passIndex < 7; passIndex++) {
|
||||
const pass = passes[passIndex];
|
||||
// Calculate pass dimensions
|
||||
const passWidth = Math.ceil((width - pass.x) / pass.xStep);
|
||||
const passHeight = Math.ceil((height - pass.y) / pass.yStep);
|
||||
if (passWidth <= 0 || passHeight <= 0)
|
||||
continue;
|
||||
const passLineBytes = passWidth * bytesPerPixel;
|
||||
const prevLine = new Uint8Array(passLineBytes);
|
||||
// Process each scanline in this pass
|
||||
for (let y = 0; y < passHeight; y++) {
|
||||
// First byte is the filter type
|
||||
const filterType = data[offset++];
|
||||
const currentLine = data.subarray(offset, offset + passLineBytes);
|
||||
offset += passLineBytes;
|
||||
// Create a new line for the unfiltered data
|
||||
const newLine = new Uint8Array(passLineBytes);
|
||||
// Apply the appropriate unfilter
|
||||
(0, applyUnfilter_1.applyUnfilter)(filterType, currentLine, newLine, prevLine, passLineBytes, bytesPerPixel);
|
||||
prevLine.set(newLine);
|
||||
for (let x = 0; x < passWidth; x++) {
|
||||
const outputX = pass.x + x * pass.xStep;
|
||||
const outputY = pass.y + y * pass.yStep;
|
||||
if (outputX >= width || outputY >= height)
|
||||
continue;
|
||||
for (let i = 0; i < bytesPerPixel; i++) {
|
||||
resultData[(outputY * width + outputX) * bytesPerPixel + i] =
|
||||
newLine[x * bytesPerPixel + i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (depth === 16) {
|
||||
const uint16Data = new Uint16Array(resultData.buffer);
|
||||
if (osIsLittleEndian) {
|
||||
for (let k = 0; k < uint16Data.length; k++) {
|
||||
// PNG is always big endian. Swap the bytes.
|
||||
uint16Data[k] = swap16(uint16Data[k]);
|
||||
}
|
||||
}
|
||||
return uint16Data;
|
||||
}
|
||||
else {
|
||||
return resultData;
|
||||
}
|
||||
}
|
||||
function swap16(val) {
|
||||
return ((val & 0xff) << 8) | ((val >> 8) & 0xff);
|
||||
}
|
||||
//# sourceMappingURL=decodeInterlaceAdam7.js.map
|
||||
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceAdam7.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceAdam7.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"decodeInterlaceAdam7.js","sourceRoot":"","sources":["../../src/helpers/decodeInterlaceAdam7.ts"],"names":[],"mappings":";;AAYA,oDA4EC;AAxFD,mDAAgD;AAGhD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5C,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAC3C;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,MAAiC;IACpE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAExD,4BAA4B;IAC5B,MAAM,MAAM,GAAG;QACb,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS;QAC7C,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS;QAC7C,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS;QAC7C,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS;QAC7C,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS;QAC7C,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS;QAC7C,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS;KAC9C,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,KAAK,GAAG,aAAa,CAAC,CAAC;IAElE,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,oBAAoB;IACpB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAE/B,4BAA4B;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7D,IAAI,SAAS,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC;YAAE,SAAS;QAEhD,MAAM,aAAa,GAAG,SAAS,GAAG,aAAa,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;QAE/C,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,gCAAgC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC;YAClE,MAAM,IAAI,aAAa,CAAC;YAExB,4CAA4C;YAC5C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;YAE9C,iCAAiC;YACjC,IAAA,6BAAa,EACX,UAAU,EACV,WAAW,EACX,OAAO,EACP,QAAQ,EACR,aAAa,EACb,aAAa,CACd,CAAC;YACF,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBACxC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBACxC,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,IAAI,MAAM;oBAAE,SAAS;gBACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,UAAU,CAAC,CAAC,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC;wBACzD,OAAO,CAAC,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,gBAAgB,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,4CAA4C;gBAC5C,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,UAAU,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACnD,CAAC"}
|
||||
9
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceNull.d.ts
generated
vendored
Normal file
9
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceNull.d.ts
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
import type { PngDataArray } from '../types';
|
||||
export interface DecodeInterlaceNullParams {
|
||||
data: Uint8Array;
|
||||
width: number;
|
||||
height: number;
|
||||
channels: number;
|
||||
depth: number;
|
||||
}
|
||||
export declare function decodeInterlaceNull(params: DecodeInterlaceNullParams): PngDataArray;
|
||||
60
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceNull.js
generated
vendored
Normal file
60
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceNull.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.decodeInterlaceNull = decodeInterlaceNull;
|
||||
const unfilter_1 = require("./unfilter");
|
||||
const uint16 = new Uint16Array([0x00ff]);
|
||||
const uint8 = new Uint8Array(uint16.buffer);
|
||||
const osIsLittleEndian = uint8[0] === 0xff;
|
||||
const empty = new Uint8Array(0);
|
||||
function decodeInterlaceNull(params) {
|
||||
const { data, width, height, channels, depth } = params;
|
||||
const bytesPerPixel = Math.ceil(depth / 8) * channels;
|
||||
const bytesPerLine = Math.ceil((depth / 8) * channels * width);
|
||||
const newData = new Uint8Array(height * bytesPerLine);
|
||||
let prevLine = empty;
|
||||
let offset = 0;
|
||||
let currentLine;
|
||||
let newLine;
|
||||
for (let i = 0; i < height; i++) {
|
||||
currentLine = data.subarray(offset + 1, offset + 1 + bytesPerLine);
|
||||
newLine = newData.subarray(i * bytesPerLine, (i + 1) * bytesPerLine);
|
||||
switch (data[offset]) {
|
||||
case 0:
|
||||
(0, unfilter_1.unfilterNone)(currentLine, newLine, bytesPerLine);
|
||||
break;
|
||||
case 1:
|
||||
(0, unfilter_1.unfilterSub)(currentLine, newLine, bytesPerLine, bytesPerPixel);
|
||||
break;
|
||||
case 2:
|
||||
(0, unfilter_1.unfilterUp)(currentLine, newLine, prevLine, bytesPerLine);
|
||||
break;
|
||||
case 3:
|
||||
(0, unfilter_1.unfilterAverage)(currentLine, newLine, prevLine, bytesPerLine, bytesPerPixel);
|
||||
break;
|
||||
case 4:
|
||||
(0, unfilter_1.unfilterPaeth)(currentLine, newLine, prevLine, bytesPerLine, bytesPerPixel);
|
||||
break;
|
||||
default:
|
||||
throw new Error(`Unsupported filter: ${data[offset]}`);
|
||||
}
|
||||
prevLine = newLine;
|
||||
offset += bytesPerLine + 1;
|
||||
}
|
||||
if (depth === 16) {
|
||||
const uint16Data = new Uint16Array(newData.buffer);
|
||||
if (osIsLittleEndian) {
|
||||
for (let k = 0; k < uint16Data.length; k++) {
|
||||
// PNG is always big endian. Swap the bytes.
|
||||
uint16Data[k] = swap16(uint16Data[k]);
|
||||
}
|
||||
}
|
||||
return uint16Data;
|
||||
}
|
||||
else {
|
||||
return newData;
|
||||
}
|
||||
}
|
||||
function swap16(val) {
|
||||
return ((val & 0xff) << 8) | ((val >> 8) & 0xff);
|
||||
}
|
||||
//# sourceMappingURL=decodeInterlaceNull.js.map
|
||||
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceNull.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/decodeInterlaceNull.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"decodeInterlaceNull.js","sourceRoot":"","sources":["../../src/helpers/decodeInterlaceNull.ts"],"names":[],"mappings":"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"}
|
||||
4
SuiviREForamteur/node_modules/fast-png/lib/helpers/signature.d.ts
generated
vendored
Normal file
4
SuiviREForamteur/node_modules/fast-png/lib/helpers/signature.d.ts
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import type { IOBuffer } from 'iobuffer';
|
||||
export declare function writeSignature(buffer: IOBuffer): void;
|
||||
export declare function checkSignature(buffer: IOBuffer): void;
|
||||
export declare function hasPngSignature(array: ArrayLike<number>): boolean;
|
||||
27
SuiviREForamteur/node_modules/fast-png/lib/helpers/signature.js
generated
vendored
Normal file
27
SuiviREForamteur/node_modules/fast-png/lib/helpers/signature.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.writeSignature = writeSignature;
|
||||
exports.checkSignature = checkSignature;
|
||||
exports.hasPngSignature = hasPngSignature;
|
||||
// https://www.w3.org/TR/PNG/#5PNG-file-signature
|
||||
const pngSignature = Uint8Array.of(137, 80, 78, 71, 13, 10, 26, 10);
|
||||
function writeSignature(buffer) {
|
||||
buffer.writeBytes(pngSignature);
|
||||
}
|
||||
function checkSignature(buffer) {
|
||||
if (!hasPngSignature(buffer.readBytes(pngSignature.length))) {
|
||||
throw new Error('wrong PNG signature');
|
||||
}
|
||||
}
|
||||
function hasPngSignature(array) {
|
||||
if (array.length < pngSignature.length) {
|
||||
return false;
|
||||
}
|
||||
for (let i = 0; i < pngSignature.length; i++) {
|
||||
if (array[i] !== pngSignature[i]) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//# sourceMappingURL=signature.js.map
|
||||
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/signature.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/signature.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/helpers/signature.ts"],"names":[],"mappings":";;AAMA,wCAEC;AAED,wCAIC;AAED,0CAUC;AAxBD,iDAAiD;AAEjD,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEpE,SAAgB,cAAc,CAAC,MAAgB;IAC7C,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,cAAc,CAAC,MAAgB;IAC7C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,KAAwB;IACtD,IAAI,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
||||
6
SuiviREForamteur/node_modules/fast-png/lib/helpers/text.d.ts
generated
vendored
Normal file
6
SuiviREForamteur/node_modules/fast-png/lib/helpers/text.d.ts
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
import type { IOBuffer } from 'iobuffer';
|
||||
export declare const textChunkName = "tEXt";
|
||||
export declare function decodetEXt(text: Record<string, string>, buffer: IOBuffer, length: number): void;
|
||||
export declare function encodetEXt(buffer: IOBuffer, keyword: string, text: string): void;
|
||||
export declare function readKeyword(buffer: IOBuffer): string;
|
||||
export declare function readLatin1(buffer: IOBuffer, length: number): string;
|
||||
58
SuiviREForamteur/node_modules/fast-png/lib/helpers/text.js
generated
vendored
Normal file
58
SuiviREForamteur/node_modules/fast-png/lib/helpers/text.js
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.textChunkName = void 0;
|
||||
exports.decodetEXt = decodetEXt;
|
||||
exports.encodetEXt = encodetEXt;
|
||||
exports.readKeyword = readKeyword;
|
||||
exports.readLatin1 = readLatin1;
|
||||
const crc_1 = require("./crc");
|
||||
// https://www.w3.org/TR/png/#11tEXt
|
||||
exports.textChunkName = 'tEXt';
|
||||
const NULL = 0;
|
||||
const latin1Decoder = new TextDecoder('latin1');
|
||||
function validateKeyword(keyword) {
|
||||
validateLatin1(keyword);
|
||||
if (keyword.length === 0 || keyword.length > 79) {
|
||||
throw new Error('keyword length must be between 1 and 79');
|
||||
}
|
||||
}
|
||||
// eslint-disable-next-line no-control-regex
|
||||
const latin1Regex = /^[\u0000-\u00FF]*$/;
|
||||
function validateLatin1(text) {
|
||||
if (!latin1Regex.test(text)) {
|
||||
throw new Error('invalid latin1 text');
|
||||
}
|
||||
}
|
||||
function decodetEXt(text, buffer, length) {
|
||||
const keyword = readKeyword(buffer);
|
||||
text[keyword] = readLatin1(buffer, length - keyword.length - 1);
|
||||
}
|
||||
function encodetEXt(buffer, keyword, text) {
|
||||
validateKeyword(keyword);
|
||||
validateLatin1(text);
|
||||
const length = keyword.length + 1 /* NULL */ + text.length;
|
||||
buffer.writeUint32(length);
|
||||
buffer.writeChars(exports.textChunkName);
|
||||
buffer.writeChars(keyword);
|
||||
buffer.writeByte(NULL);
|
||||
buffer.writeChars(text);
|
||||
(0, crc_1.writeCrc)(buffer, length + 4);
|
||||
}
|
||||
// https://www.w3.org/TR/png/#11keywords
|
||||
function readKeyword(buffer) {
|
||||
buffer.mark();
|
||||
while (buffer.readByte() !== NULL) {
|
||||
/* advance */
|
||||
}
|
||||
const end = buffer.offset;
|
||||
buffer.reset();
|
||||
const keyword = latin1Decoder.decode(buffer.readBytes(end - buffer.offset - 1));
|
||||
// NULL
|
||||
buffer.skip(1);
|
||||
validateKeyword(keyword);
|
||||
return keyword;
|
||||
}
|
||||
function readLatin1(buffer, length) {
|
||||
return latin1Decoder.decode(buffer.readBytes(length));
|
||||
}
|
||||
//# sourceMappingURL=text.js.map
|
||||
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/text.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/text.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/helpers/text.ts"],"names":[],"mappings":";;;AA2BA,gCAOC;AAED,gCAWC;AAGD,kCAgBC;AAED,gCAEC;AApED,+BAAiC;AAEjC,oCAAoC;AAEvB,QAAA,aAAa,GAAG,MAAM,CAAC;AAEpC,MAAM,IAAI,GAAG,CAAC,CAAC;AAEf,MAAM,aAAa,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;AAEhD,SAAS,eAAe,CAAC,OAAe;IACtC,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,4CAA4C;AAC5C,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CACxB,IAA4B,EAC5B,MAAgB,EAChB,MAAc;IAEd,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAgB,UAAU,CAAC,MAAgB,EAAE,OAAe,EAAE,IAAY;IACxE,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;IAE3D,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,CAAC,UAAU,CAAC,qBAAa,CAAC,CAAC;IACjC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxB,IAAA,cAAQ,EAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,wCAAwC;AACxC,SAAgB,WAAW,CAAC,MAAgB;IAC1C,MAAM,CAAC,IAAI,EAAE,CAAC;IACd,OAAO,MAAM,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;QAClC,aAAa;IACf,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAClC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAC1C,CAAC;IACF,OAAO;IACP,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEf,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,UAAU,CAAC,MAAgB,EAAE,MAAc;IACzD,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
||||
6
SuiviREForamteur/node_modules/fast-png/lib/helpers/unfilter.d.ts
generated
vendored
Normal file
6
SuiviREForamteur/node_modules/fast-png/lib/helpers/unfilter.d.ts
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
import type { PngDataArray } from '../types';
|
||||
export declare function unfilterNone(currentLine: PngDataArray, newLine: PngDataArray, bytesPerLine: number): void;
|
||||
export declare function unfilterSub(currentLine: PngDataArray, newLine: PngDataArray, bytesPerLine: number, bytesPerPixel: number): void;
|
||||
export declare function unfilterUp(currentLine: PngDataArray, newLine: PngDataArray, prevLine: PngDataArray, bytesPerLine: number): void;
|
||||
export declare function unfilterAverage(currentLine: PngDataArray, newLine: PngDataArray, prevLine: PngDataArray, bytesPerLine: number, bytesPerPixel: number): void;
|
||||
export declare function unfilterPaeth(currentLine: PngDataArray, newLine: PngDataArray, prevLine: PngDataArray, bytesPerLine: number, bytesPerPixel: number): void;
|
||||
92
SuiviREForamteur/node_modules/fast-png/lib/helpers/unfilter.js
generated
vendored
Normal file
92
SuiviREForamteur/node_modules/fast-png/lib/helpers/unfilter.js
generated
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.unfilterNone = unfilterNone;
|
||||
exports.unfilterSub = unfilterSub;
|
||||
exports.unfilterUp = unfilterUp;
|
||||
exports.unfilterAverage = unfilterAverage;
|
||||
exports.unfilterPaeth = unfilterPaeth;
|
||||
function unfilterNone(currentLine, newLine, bytesPerLine) {
|
||||
for (let i = 0; i < bytesPerLine; i++) {
|
||||
newLine[i] = currentLine[i];
|
||||
}
|
||||
}
|
||||
function unfilterSub(currentLine, newLine, bytesPerLine, bytesPerPixel) {
|
||||
let i = 0;
|
||||
for (; i < bytesPerPixel; i++) {
|
||||
// just copy first bytes
|
||||
newLine[i] = currentLine[i];
|
||||
}
|
||||
for (; i < bytesPerLine; i++) {
|
||||
newLine[i] = (currentLine[i] + newLine[i - bytesPerPixel]) & 0xff;
|
||||
}
|
||||
}
|
||||
function unfilterUp(currentLine, newLine, prevLine, bytesPerLine) {
|
||||
let i = 0;
|
||||
if (prevLine.length === 0) {
|
||||
// just copy bytes for first line
|
||||
for (; i < bytesPerLine; i++) {
|
||||
newLine[i] = currentLine[i];
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (; i < bytesPerLine; i++) {
|
||||
newLine[i] = (currentLine[i] + prevLine[i]) & 0xff;
|
||||
}
|
||||
}
|
||||
}
|
||||
function unfilterAverage(currentLine, newLine, prevLine, bytesPerLine, bytesPerPixel) {
|
||||
let i = 0;
|
||||
if (prevLine.length === 0) {
|
||||
for (; i < bytesPerPixel; i++) {
|
||||
newLine[i] = currentLine[i];
|
||||
}
|
||||
for (; i < bytesPerLine; i++) {
|
||||
newLine[i] = (currentLine[i] + (newLine[i - bytesPerPixel] >> 1)) & 0xff;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (; i < bytesPerPixel; i++) {
|
||||
newLine[i] = (currentLine[i] + (prevLine[i] >> 1)) & 0xff;
|
||||
}
|
||||
for (; i < bytesPerLine; i++) {
|
||||
newLine[i] =
|
||||
(currentLine[i] + ((newLine[i - bytesPerPixel] + prevLine[i]) >> 1)) &
|
||||
0xff;
|
||||
}
|
||||
}
|
||||
}
|
||||
function unfilterPaeth(currentLine, newLine, prevLine, bytesPerLine, bytesPerPixel) {
|
||||
let i = 0;
|
||||
if (prevLine.length === 0) {
|
||||
for (; i < bytesPerPixel; i++) {
|
||||
newLine[i] = currentLine[i];
|
||||
}
|
||||
for (; i < bytesPerLine; i++) {
|
||||
newLine[i] = (currentLine[i] + newLine[i - bytesPerPixel]) & 0xff;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (; i < bytesPerPixel; i++) {
|
||||
newLine[i] = (currentLine[i] + prevLine[i]) & 0xff;
|
||||
}
|
||||
for (; i < bytesPerLine; i++) {
|
||||
newLine[i] =
|
||||
(currentLine[i] +
|
||||
paethPredictor(newLine[i - bytesPerPixel], prevLine[i], prevLine[i - bytesPerPixel])) &
|
||||
0xff;
|
||||
}
|
||||
}
|
||||
}
|
||||
function paethPredictor(a, b, c) {
|
||||
const p = a + b - c;
|
||||
const pa = Math.abs(p - a);
|
||||
const pb = Math.abs(p - b);
|
||||
const pc = Math.abs(p - c);
|
||||
if (pa <= pb && pa <= pc)
|
||||
return a;
|
||||
else if (pb <= pc)
|
||||
return b;
|
||||
else
|
||||
return c;
|
||||
}
|
||||
//# sourceMappingURL=unfilter.js.map
|
||||
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/unfilter.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib/helpers/unfilter.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"unfilter.js","sourceRoot":"","sources":["../../src/helpers/unfilter.ts"],"names":[],"mappings":"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"}
|
||||
Reference in New Issue
Block a user