V1_commit_RGC
This commit is contained in:
32
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/applyUnfilter.js
generated
vendored
Normal file
32
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/applyUnfilter.js
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
import { unfilterAverage, unfilterNone, unfilterPaeth, unfilterSub, unfilterUp, } from './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.
|
||||
*/
|
||||
export function applyUnfilter(filterType, currentLine, newLine, prevLine, passLineBytes, bytesPerPixel) {
|
||||
switch (filterType) {
|
||||
case 0:
|
||||
unfilterNone(currentLine, newLine, passLineBytes);
|
||||
break;
|
||||
case 1:
|
||||
unfilterSub(currentLine, newLine, passLineBytes, bytesPerPixel);
|
||||
break;
|
||||
case 2:
|
||||
unfilterUp(currentLine, newLine, prevLine, passLineBytes);
|
||||
break;
|
||||
case 3:
|
||||
unfilterAverage(currentLine, newLine, prevLine, passLineBytes, bytesPerPixel);
|
||||
break;
|
||||
case 4:
|
||||
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-esm/helpers/applyUnfilter.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/applyUnfilter.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"applyUnfilter.js","sourceRoot":"","sources":["../../src/helpers/applyUnfilter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AACpB;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,WAAuB,EACvB,OAAmB,EACnB,QAAoB,EACpB,aAAqB,EACrB,aAAqB;IAErB,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,CAAC;YACJ,YAAY,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,CAAC;YACJ,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;YAChE,MAAM;QACR,KAAK,CAAC;YACJ,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,CAAC;YACJ,eAAe,CACb,WAAW,EACX,OAAO,EACP,QAAQ,EACR,aAAa,EACb,aAAa,CACd,CAAC;YACF,MAAM;QACR,KAAK,CAAC;YACJ,aAAa,CACX,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"}
|
||||
35
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/crc.js
generated
vendored
Normal file
35
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/crc.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
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;
|
||||
}
|
||||
export 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}`);
|
||||
}
|
||||
}
|
||||
export 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-esm/helpers/crc.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/crc.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"crc.js","sourceRoot":"","sources":["../../src/helpers/crc.ts"],"names":[],"mappings":"AAEA,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,MAAM,UAAU,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,MAAM,UAAU,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"}
|
||||
76
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js
generated
vendored
Normal file
76
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
import { applyUnfilter } from './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.
|
||||
*/
|
||||
export 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
|
||||
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-esm/helpers/decodeInterlaceAdam7.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/decodeInterlaceAdam7.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"decodeInterlaceAdam7.js","sourceRoot":"","sources":["../../src/helpers/decodeInterlaceAdam7.ts"],"names":[],"mappings":"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"}
|
||||
57
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js
generated
vendored
Normal file
57
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/decodeInterlaceNull.js
generated
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
import { unfilterAverage, unfilterNone, unfilterPaeth, unfilterSub, unfilterUp, } from './unfilter';
|
||||
const uint16 = new Uint16Array([0x00ff]);
|
||||
const uint8 = new Uint8Array(uint16.buffer);
|
||||
const osIsLittleEndian = uint8[0] === 0xff;
|
||||
const empty = new Uint8Array(0);
|
||||
export 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:
|
||||
unfilterNone(currentLine, newLine, bytesPerLine);
|
||||
break;
|
||||
case 1:
|
||||
unfilterSub(currentLine, newLine, bytesPerLine, bytesPerPixel);
|
||||
break;
|
||||
case 2:
|
||||
unfilterUp(currentLine, newLine, prevLine, bytesPerLine);
|
||||
break;
|
||||
case 3:
|
||||
unfilterAverage(currentLine, newLine, prevLine, bytesPerLine, bytesPerPixel);
|
||||
break;
|
||||
case 4:
|
||||
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-esm/helpers/decodeInterlaceNull.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib-esm/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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"}
|
||||
22
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/signature.js
generated
vendored
Normal file
22
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/signature.js
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
// https://www.w3.org/TR/PNG/#5PNG-file-signature
|
||||
const pngSignature = Uint8Array.of(137, 80, 78, 71, 13, 10, 26, 10);
|
||||
export function writeSignature(buffer) {
|
||||
buffer.writeBytes(pngSignature);
|
||||
}
|
||||
export function checkSignature(buffer) {
|
||||
if (!hasPngSignature(buffer.readBytes(pngSignature.length))) {
|
||||
throw new Error('wrong PNG signature');
|
||||
}
|
||||
}
|
||||
export 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-esm/helpers/signature.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/signature.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/helpers/signature.ts"],"names":[],"mappings":"AAEA,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,MAAM,UAAU,cAAc,CAAC,MAAgB;IAC7C,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,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,MAAM,UAAU,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"}
|
||||
51
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/text.js
generated
vendored
Normal file
51
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/text.js
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
import { writeCrc } from './crc';
|
||||
// https://www.w3.org/TR/png/#11tEXt
|
||||
export const 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');
|
||||
}
|
||||
}
|
||||
export function decodetEXt(text, buffer, length) {
|
||||
const keyword = readKeyword(buffer);
|
||||
text[keyword] = readLatin1(buffer, length - keyword.length - 1);
|
||||
}
|
||||
export function encodetEXt(buffer, keyword, text) {
|
||||
validateKeyword(keyword);
|
||||
validateLatin1(text);
|
||||
const length = keyword.length + 1 /* NULL */ + text.length;
|
||||
buffer.writeUint32(length);
|
||||
buffer.writeChars(textChunkName);
|
||||
buffer.writeChars(keyword);
|
||||
buffer.writeByte(NULL);
|
||||
buffer.writeChars(text);
|
||||
writeCrc(buffer, length + 4);
|
||||
}
|
||||
// https://www.w3.org/TR/png/#11keywords
|
||||
export 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;
|
||||
}
|
||||
export function readLatin1(buffer, length) {
|
||||
return latin1Decoder.decode(buffer.readBytes(length));
|
||||
}
|
||||
//# sourceMappingURL=text.js.map
|
||||
1
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/text.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/text.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/helpers/text.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,oCAAoC;AAEpC,MAAM,CAAC,MAAM,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,MAAM,UAAU,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,MAAM,UAAU,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,aAAa,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,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,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,MAAM,UAAU,UAAU,CAAC,MAAgB,EAAE,MAAc;IACzD,OAAO,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
||||
85
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/unfilter.js
generated
vendored
Normal file
85
SuiviREForamteur/node_modules/fast-png/lib-esm/helpers/unfilter.js
generated
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
export function unfilterNone(currentLine, newLine, bytesPerLine) {
|
||||
for (let i = 0; i < bytesPerLine; i++) {
|
||||
newLine[i] = currentLine[i];
|
||||
}
|
||||
}
|
||||
export 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;
|
||||
}
|
||||
}
|
||||
export 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
export 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
export 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-esm/helpers/unfilter.js.map
generated
vendored
Normal file
1
SuiviREForamteur/node_modules/fast-png/lib-esm/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