mirror of
https://github.com/1disk/edp445.git
synced 2024-08-14 22:47:02 +00:00
Changed alot of things.
This commit is contained in:
parent
a5a0523e5a
commit
3513d5390c
2016 changed files with 336930 additions and 9 deletions
123
node_modules/@skyra/gifenc/dist/lib/LZWEncoder.d.ts
generated
vendored
Normal file
123
node_modules/@skyra/gifenc/dist/lib/LZWEncoder.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
/**
|
||||
* LZWEncoder
|
||||
*
|
||||
* Authors
|
||||
* - Kevin Weiner (original Java version - kweiner@fmsware.com)
|
||||
* - Thibault Imbert (AS3 version - bytearray.org)
|
||||
* - Johan Nordberg (JS version - code@johan-nordberg.com)
|
||||
* - Antonio Román (TS version - kyradiscord@gmail.com)
|
||||
*
|
||||
* Acknowledgements
|
||||
* - GIFCOMPR.C - GIF Image compression routines
|
||||
* - Lempel-Ziv compression based on 'compress'. GIF modifications by
|
||||
* - David Rowley (mgardi@watdcsu.waterloo.edu)
|
||||
* GIF Image compression - modified 'compress'
|
||||
* Based on: compress.c - File compression ala IEEE Computer, June 1984.
|
||||
* By Authors:
|
||||
* - Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas)
|
||||
* - Jim McKie (decvax!mcvax!jim)
|
||||
* - Steve Davies (decvax!vax135!petsd!peora!srd)
|
||||
* - Ken Turkowski (decvax!decwrl!turtlevax!ken)
|
||||
* - James A. Woods (decvax!ihnp4!ames!jaw)
|
||||
* - Joe Orost (decvax!vax135!petsd!joe)
|
||||
*/
|
||||
import type { ByteBuffer } from './ByteBuffer';
|
||||
/**
|
||||
* @summary
|
||||
* Algorithm: use open addressing double hashing (no chaining) on the prefix code / next character combination.
|
||||
*
|
||||
* We do a variant of Knuth's algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime secondary probe.
|
||||
* Here, the modular division first probe is gives way to a faster exclusive-or manipulation. Also do block compression
|
||||
* with an adaptive reset, whereby the code table is cleared when the compression ratio decreases, but after the table
|
||||
* fills. The variable-length output codes are re-sized at this point, and a special CLEAR code is generated for the
|
||||
* decompression.
|
||||
*
|
||||
* **Late addition**: construct the table according to file size for noticeable speed improvement on small files. Please
|
||||
* direct questions about this implementation to ames!jaw.
|
||||
*/
|
||||
export declare class LZWEncoder {
|
||||
/**
|
||||
* The GIF image's width, between `1` and `65536`.
|
||||
*/
|
||||
readonly width: number;
|
||||
/**
|
||||
* The GIF image's height, between `1` and `65536`.
|
||||
*/
|
||||
readonly height: number;
|
||||
private pixels;
|
||||
private readonly initCodeSize;
|
||||
private currentAccumulator;
|
||||
private currentBits;
|
||||
private currentPixel;
|
||||
private accumulator;
|
||||
private firstUnusedEntry;
|
||||
private maximumCode;
|
||||
private remaining;
|
||||
private bitSize;
|
||||
private clearFlag;
|
||||
private globalInitialBits;
|
||||
private clearCode;
|
||||
private endOfFrameCode;
|
||||
private readonly accumulators;
|
||||
private readonly hashes;
|
||||
private readonly codes;
|
||||
/**
|
||||
* Constructs a {@link LZWEncoder} instance.
|
||||
* @param width The width of the image.
|
||||
* @param height The height of the image.
|
||||
* @param pixels The pixel data in RGB format.
|
||||
* @param colorDepth The color depth.
|
||||
*/
|
||||
constructor(width: number, height: number, pixels: Uint8Array, colorDepth: number);
|
||||
/**
|
||||
* Encodes the image into the output.
|
||||
* @param output The byte buffer to write to.
|
||||
*/
|
||||
encode(output: ByteBuffer): void;
|
||||
/**
|
||||
* Compresses the GIF data.
|
||||
* @param initialBits The initial bits for the compression.
|
||||
* @param output The byte buffer to write to.
|
||||
*/
|
||||
private compress;
|
||||
/**
|
||||
* Adds a character to the end of the current packet, and if it is at 254 characters, it flushes the packet to disk
|
||||
* via {@link LZWEncoder.flushPacket}.
|
||||
* @param c The character code to add.
|
||||
* @param output The byte buffer to write to.
|
||||
*/
|
||||
private addCharacter;
|
||||
/**
|
||||
* Clears out the hash table for block compress.
|
||||
* @param output The byte buffer to write to.
|
||||
*/
|
||||
private clearCodeTable;
|
||||
/**
|
||||
* Resets the hash table given an amount of hashes.
|
||||
* @param hashSize The amount of hashes to reset.
|
||||
*/
|
||||
private resetHashRange;
|
||||
/**
|
||||
* Flushes the packet to disk, and reset the accumulator.
|
||||
* @param output The byte buffer to write to.
|
||||
*/
|
||||
private flushPacket;
|
||||
/**
|
||||
* Gets the maximum representable number for a given amount of bits.
|
||||
* @param size The bit size to get the number from.
|
||||
* @returns The maximum code given a number of bits.
|
||||
* @example
|
||||
* ```typescript
|
||||
* getMaximumCode(6);
|
||||
* // ➡ 0b0011_1111
|
||||
* ```
|
||||
*/
|
||||
private getMaximumCode;
|
||||
/**
|
||||
* Gets the next pixel from the image.
|
||||
* @returns The next pixel from the image.
|
||||
*/
|
||||
private nextPixel;
|
||||
private processOutput;
|
||||
}
|
||||
//# sourceMappingURL=LZWEncoder.d.ts.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue