mirror of
https://github.com/codedread/bitjs
synced 2025-10-03 17:49:16 +02:00
Remove Jpeg parse event boilerplate
This commit is contained in:
parent
c3a7b35fd5
commit
17c58ec416
6 changed files with 52 additions and 168 deletions
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
import { ByteStream } from '../../io/bytestream.js';
|
import { ByteStream } from '../../io/bytestream.js';
|
||||||
import { getExifProfile } from './exif.js';
|
import { getExifProfile } from './exif.js';
|
||||||
|
import { createEvent } from './parsers.js';
|
||||||
|
|
||||||
/** @typedef {import('./exif.js').ExifValue} ExifValue */
|
/** @typedef {import('./exif.js').ExifValue} ExifValue */
|
||||||
|
|
||||||
|
@ -73,15 +74,6 @@ export const JpegDensityUnits = {
|
||||||
* @property {Uint8Array} thumbnailData RGB data. Size is 3 x thumbnailWidth x thumbnailHeight.
|
* @property {Uint8Array} thumbnailData RGB data. Size is 3 x thumbnailWidth x thumbnailHeight.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export class JpegApp0MarkerEvent extends Event {
|
|
||||||
/** @param {JpegApp0Marker} */
|
|
||||||
constructor(segment) {
|
|
||||||
super(JpegParseEventType.APP0_MARKER);
|
|
||||||
/** @type {JpegApp0Marker} */
|
|
||||||
this.app0Marker = segment;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @enum {number} */
|
/** @enum {number} */
|
||||||
export const JpegExtensionThumbnailFormat = {
|
export const JpegExtensionThumbnailFormat = {
|
||||||
JPEG: 0x10,
|
JPEG: 0x10,
|
||||||
|
@ -95,23 +87,7 @@ export const JpegExtensionThumbnailFormat = {
|
||||||
* @property {Uint8Array} thumbnailData Raw thumbnail data
|
* @property {Uint8Array} thumbnailData Raw thumbnail data
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export class JpegApp0ExtensionEvent extends Event {
|
/** @typedef {Map<number, ExifValue>} JpegExifProfile */
|
||||||
/** @param {JpegApp0Extension} */
|
|
||||||
constructor(segment) {
|
|
||||||
super(JpegParseEventType.APP0_EXTENSION);
|
|
||||||
/** @type {JpegApp0Extension} */
|
|
||||||
this.app0Extension = segment;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export class JpegApp1ExifEvent extends Event {
|
|
||||||
/** @param {Map<number, ExifValue>} exifValueMap */
|
|
||||||
constructor(exifValueMap) {
|
|
||||||
super(JpegParseEventType.APP1_EXIF);
|
|
||||||
/** @type {Map<number, ExifValue>} */
|
|
||||||
this.exifValueMap = exifValueMap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef JpegDefineQuantizationTable
|
* @typedef JpegDefineQuantizationTable
|
||||||
|
@ -120,15 +96,6 @@ export class JpegApp1ExifEvent extends Event {
|
||||||
* @property {number[]} tableValues 64 numbers representing the quantization table.
|
* @property {number[]} tableValues 64 numbers representing the quantization table.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export class JpegDefineQuantizationTableEvent extends Event {
|
|
||||||
/** @param {JpegDefineQuantizationTable} table */
|
|
||||||
constructor(table) {
|
|
||||||
super(JpegParseEventType.DEFINE_QUANTIZATION_TABLE);
|
|
||||||
/** @type {JpegDefineQuantizationTable} */
|
|
||||||
this.quantizationTable = table;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @enum {number} */
|
/** @enum {number} */
|
||||||
export const JpegHuffmanTableType = {
|
export const JpegHuffmanTableType = {
|
||||||
DC: 0,
|
DC: 0,
|
||||||
|
@ -143,15 +110,6 @@ export const JpegHuffmanTableType = {
|
||||||
* @property {number[]} symbols
|
* @property {number[]} symbols
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export class JpegDefineHuffmanTableEvent extends Event {
|
|
||||||
/** @param {JpegDefineHuffmanTable} table */
|
|
||||||
constructor(table) {
|
|
||||||
super(JpegParseEventType.DEFINE_HUFFMAN_TABLE);
|
|
||||||
/** @type {JpegDefineHuffmanTable} */
|
|
||||||
this.huffmanTable = table;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @enum {number} */
|
/** @enum {number} */
|
||||||
export const JpegDctType = {
|
export const JpegDctType = {
|
||||||
BASELINE: 0,
|
BASELINE: 0,
|
||||||
|
@ -186,15 +144,6 @@ export const JpegComponentType = {
|
||||||
* @property {JpegComponentDetail[]} componentDetails
|
* @property {JpegComponentDetail[]} componentDetails
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export class JpegStartOfFrameEvent extends Event {
|
|
||||||
/** @param {JpegStartOfFrame} sof */
|
|
||||||
constructor(sof) {
|
|
||||||
super(JpegParseEventType.START_OF_FRAME);
|
|
||||||
/** @type {JpegStartOfFrame} */
|
|
||||||
this.startOfFrame = sof;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef JpegStartOfScan
|
* @typedef JpegStartOfScan
|
||||||
* @property {number} componentsInScan
|
* @property {number} componentsInScan
|
||||||
|
@ -238,8 +187,8 @@ export class JpegParser extends EventTarget {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegApp0MarkerEvent.
|
* Type-safe way to bind a listener for a JpegApp0Marker.
|
||||||
* @param {function(JpegApp0MarkerEvent): void} listener
|
* @param {function(CustomEvent<JpegApp0Marker>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onApp0Marker(listener) {
|
onApp0Marker(listener) {
|
||||||
|
@ -248,8 +197,8 @@ export class JpegParser extends EventTarget {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegApp0ExtensionEvent.
|
* Type-safe way to bind a listener for a JpegApp0Extension.
|
||||||
* @param {function(JpegApp0MarkerEvent): void} listener
|
* @param {function(CustomEvent<JpegApp0Extension>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onApp0Extension(listener) {
|
onApp0Extension(listener) {
|
||||||
|
@ -258,8 +207,8 @@ export class JpegParser extends EventTarget {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegApp1ExifEvent.
|
* Type-safe way to bind a listener for a JpegExifProfile.
|
||||||
* @param {function(JpegApp1ExifEvent): void} listener
|
* @param {function(CustomEvent<JpegExifProfile>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onApp1Exif(listener) {
|
onApp1Exif(listener) {
|
||||||
|
@ -268,8 +217,8 @@ export class JpegParser extends EventTarget {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegDefineQuantizationTableEvent.
|
* Type-safe way to bind a listener for a JpegDefineQuantizationTable.
|
||||||
* @param {function(JpegDefineQuantizationTableEvent): void} listener
|
* @param {function(CustomEvent<JpegDefineQuantizationTable>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onDefineQuantizationTable(listener) {
|
onDefineQuantizationTable(listener) {
|
||||||
|
@ -278,8 +227,8 @@ export class JpegParser extends EventTarget {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegDefineHuffmanTableEvent.
|
* Type-safe way to bind a listener for a JpegDefineHuffmanTable.
|
||||||
* @param {function(JpegDefineHuffmanTableEvent): void} listener
|
* @param {function(CustomEvent<JpegDefineHuffmanTable>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onDefineHuffmanTable(listener) {
|
onDefineHuffmanTable(listener) {
|
||||||
|
@ -288,8 +237,8 @@ export class JpegParser extends EventTarget {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegStartOfFrameEvent.
|
* Type-safe way to bind a listener for a JpegStartOfFrame.
|
||||||
* @param {function(JpegStartOfFrameEvent): void} listener
|
* @param {function(CustomEvent<JpegStartOfFrame>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onStartOfFrame(listener) {
|
onStartOfFrame(listener) {
|
||||||
|
@ -298,8 +247,8 @@ export class JpegParser extends EventTarget {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegStartOfScanEvent.
|
* Type-safe way to bind a listener for a JpegStartOfScan.
|
||||||
* @param {function(JpegStartOfScanEvent): void} listener
|
* @param {function(CustomEvent<JpegStartOfScan>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onStartOfScan(listener) {
|
onStartOfScan(listener) {
|
||||||
|
@ -345,7 +294,7 @@ export class JpegParser extends EventTarget {
|
||||||
yThumbnail,
|
yThumbnail,
|
||||||
thumbnailData: this.bstream.readBytes(3 * xThumbnail * yThumbnail),
|
thumbnailData: this.bstream.readBytes(3 * xThumbnail * yThumbnail),
|
||||||
};
|
};
|
||||||
this.dispatchEvent(new JpegApp0MarkerEvent(app0MarkerSegment));
|
this.dispatchEvent(createEvent(JpegParseEventType.APP0_MARKER, app0MarkerSegment));
|
||||||
}
|
}
|
||||||
else if (identifier === 'JFXX') {
|
else if (identifier === 'JFXX') {
|
||||||
if (!this.hasApp0MarkerSegment) throw `JFXX found without JFIF`;
|
if (!this.hasApp0MarkerSegment) throw `JFXX found without JFIF`;
|
||||||
|
@ -364,7 +313,7 @@ export class JpegParser extends EventTarget {
|
||||||
thumbnailFormat,
|
thumbnailFormat,
|
||||||
thumbnailData,
|
thumbnailData,
|
||||||
};
|
};
|
||||||
this.dispatchEvent(new JpegApp0ExtensionEvent(app0ExtensionSegment));
|
this.dispatchEvent(createEvent(JpegParseEventType.APP0_EXTENSION, app0ExtensionSegment));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw `Bad APP0 identifier: ${identifier}`;
|
throw `Bad APP0 identifier: ${identifier}`;
|
||||||
|
@ -387,7 +336,7 @@ export class JpegParser extends EventTarget {
|
||||||
if (this.bstream.readNumber(2) !== 0) throw `No null byte termination`;
|
if (this.bstream.readNumber(2) !== 0) throw `No null byte termination`;
|
||||||
|
|
||||||
const exifValueMap = getExifProfile(this.bstream);
|
const exifValueMap = getExifProfile(this.bstream);
|
||||||
this.dispatchEvent(new JpegApp1ExifEvent(exifValueMap));
|
this.dispatchEvent(createEvent(JpegParseEventType.APP1_EXIF, exifValueMap));
|
||||||
|
|
||||||
this.bstream = skipAheadStream;
|
this.bstream = skipAheadStream;
|
||||||
} // End of APP1
|
} // End of APP1
|
||||||
|
@ -418,7 +367,7 @@ export class JpegParser extends EventTarget {
|
||||||
precision,
|
precision,
|
||||||
tableValues,
|
tableValues,
|
||||||
};
|
};
|
||||||
this.dispatchEvent(new JpegDefineQuantizationTableEvent(table));
|
this.dispatchEvent(createEvent(JpegParseEventType.DEFINE_QUANTIZATION_TABLE, table));
|
||||||
|
|
||||||
ptr += (1 + valSize * 64);
|
ptr += (1 + valSize * 64);
|
||||||
}
|
}
|
||||||
|
@ -452,7 +401,7 @@ export class JpegParser extends EventTarget {
|
||||||
numberOfSymbols,
|
numberOfSymbols,
|
||||||
symbols,
|
symbols,
|
||||||
};
|
};
|
||||||
this.dispatchEvent(new JpegDefineHuffmanTableEvent(table));
|
this.dispatchEvent(createEvent(JpegParseEventType.DEFINE_HUFFMAN_TABLE, table));
|
||||||
|
|
||||||
ptr += (1 + 16 + numCodes);
|
ptr += (1 + 16 + numCodes);
|
||||||
}
|
}
|
||||||
|
@ -497,7 +446,7 @@ export class JpegParser extends EventTarget {
|
||||||
componentDetails,
|
componentDetails,
|
||||||
};
|
};
|
||||||
|
|
||||||
this.dispatchEvent(new JpegStartOfFrameEvent(sof));
|
this.dispatchEvent(createEvent(JpegParseEventType.START_OF_FRAME, sof));
|
||||||
} // End of SOF0, SOF1, SOF2
|
} // End of SOF0, SOF1, SOF2
|
||||||
else if (jpegMarker === JpegSegmentType.SOS) {
|
else if (jpegMarker === JpegSegmentType.SOS) {
|
||||||
this.bstream.setBigEndian();
|
this.bstream.setBigEndian();
|
||||||
|
@ -536,7 +485,7 @@ export class JpegParser extends EventTarget {
|
||||||
// NOTE: The below will have the null bytes after every 0xFF value.
|
// NOTE: The below will have the null bytes after every 0xFF value.
|
||||||
sos.rawImageData = rawImageDataStream.readBytes(numBytes);
|
sos.rawImageData = rawImageDataStream.readBytes(numBytes);
|
||||||
|
|
||||||
this.dispatchEvent(new JpegStartOfScanEvent(sos));
|
this.dispatchEvent(createEvent(JpegParseEventType.START_OF_SCAN, sos));
|
||||||
} // End of SOS
|
} // End of SOS
|
||||||
else {
|
else {
|
||||||
this.bstream.setBigEndian();
|
this.bstream.setBigEndian();
|
||||||
|
|
8
index.js
8
index.js
|
@ -35,11 +35,9 @@ export {
|
||||||
export { getFullMIMEString, getShortMIMEString } from './codecs/codecs.js';
|
export { getFullMIMEString, getShortMIMEString } from './codecs/codecs.js';
|
||||||
export { findMimeType } from './file/sniffer.js';
|
export { findMimeType } from './file/sniffer.js';
|
||||||
export { GifParseEventType, GifParser } from './image/parsers/gif.js';
|
export { GifParseEventType, GifParser } from './image/parsers/gif.js';
|
||||||
export { JpegApp0ExtensionEvent, JpegApp0MarkerEvent, JpegApp1ExifEvent, JpegComponentType,
|
export { JpegComponentType, JpegDctType, JpegDensityUnits, JpegExtensionThumbnailFormat,
|
||||||
JpegDctType, JpegDefineHuffmanTableEvent, JpegDefineQuantizationTableEvent,
|
JpegHuffmanTableType, JpegParseEventType, JpegParser,
|
||||||
JpegDensityUnits, JpegExtensionThumbnailFormat, JpegHuffmanTableType, JpegParseEventType,
|
JpegSegmentType } from './image/parsers/jpeg.js';
|
||||||
JpegParser, JpegSegmentType, JpegStartOfFrameEvent,
|
|
||||||
JpegStartOfScanEvent } from './image/parsers/jpeg.js';
|
|
||||||
export { convertWebPtoPNG, convertWebPtoJPG } from './image/webp-shim/webp-shim.js';
|
export { convertWebPtoPNG, convertWebPtoJPG } from './image/webp-shim/webp-shim.js';
|
||||||
export { BitBuffer } from './io/bitbuffer.js';
|
export { BitBuffer } from './io/bitbuffer.js';
|
||||||
export { BitStream } from './io/bitstream.js';
|
export { BitStream } from './io/bitstream.js';
|
||||||
|
|
|
@ -20,8 +20,8 @@ describe('bitjs.image.parsers.JpegParser', () => {
|
||||||
let sof;
|
let sof;
|
||||||
|
|
||||||
const parser = new JpegParser(ab)
|
const parser = new JpegParser(ab)
|
||||||
.onApp1Exif(evt => { exif = evt.exifValueMap })
|
.onApp1Exif(evt => { exif = evt.detail })
|
||||||
.onStartOfFrame(evt => { sof = evt.startOfFrame });
|
.onStartOfFrame(evt => { sof = evt.detail });
|
||||||
await parser.start();
|
await parser.start();
|
||||||
|
|
||||||
const descVal = exif.get(ExifTagNumber.IMAGE_DESCRIPTION);
|
const descVal = exif.get(ExifTagNumber.IMAGE_DESCRIPTION);
|
||||||
|
|
107
types/image/parsers/jpeg.d.ts
vendored
107
types/image/parsers/jpeg.d.ts
vendored
|
@ -27,75 +27,17 @@ export namespace JpegDensityUnits {
|
||||||
const PIXELS_PER_INCH: number;
|
const PIXELS_PER_INCH: number;
|
||||||
const PIXELS_PER_CM: number;
|
const PIXELS_PER_CM: number;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* @typedef JpegApp0Marker
|
|
||||||
* @property {string} jfifVersion Like '1.02'.
|
|
||||||
* @property {JpegDensityUnits} densityUnits
|
|
||||||
* @property {number} xDensity
|
|
||||||
* @property {number} yDensity
|
|
||||||
* @property {number} xThumbnail
|
|
||||||
* @property {number} yThumbnail
|
|
||||||
* @property {Uint8Array} thumbnailData RGB data. Size is 3 x thumbnailWidth x thumbnailHeight.
|
|
||||||
*/
|
|
||||||
export class JpegApp0MarkerEvent extends Event {
|
|
||||||
/** @param {JpegApp0Marker} */
|
|
||||||
constructor(segment: any);
|
|
||||||
/** @type {JpegApp0Marker} */
|
|
||||||
app0Marker: JpegApp0Marker;
|
|
||||||
}
|
|
||||||
export type JpegExtensionThumbnailFormat = number;
|
export type JpegExtensionThumbnailFormat = number;
|
||||||
export namespace JpegExtensionThumbnailFormat {
|
export namespace JpegExtensionThumbnailFormat {
|
||||||
const JPEG: number;
|
const JPEG: number;
|
||||||
const ONE_BYTE_PER_PIXEL_PALETTIZED: number;
|
const ONE_BYTE_PER_PIXEL_PALETTIZED: number;
|
||||||
const THREE_BYTES_PER_PIXEL_RGB: number;
|
const THREE_BYTES_PER_PIXEL_RGB: number;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* @typedef JpegApp0Extension
|
|
||||||
* @property {JpegExtensionThumbnailFormat} thumbnailFormat
|
|
||||||
* @property {Uint8Array} thumbnailData Raw thumbnail data
|
|
||||||
*/
|
|
||||||
export class JpegApp0ExtensionEvent extends Event {
|
|
||||||
/** @param {JpegApp0Extension} */
|
|
||||||
constructor(segment: any);
|
|
||||||
/** @type {JpegApp0Extension} */
|
|
||||||
app0Extension: JpegApp0Extension;
|
|
||||||
}
|
|
||||||
export class JpegApp1ExifEvent extends Event {
|
|
||||||
/** @param {Map<number, ExifValue>} exifValueMap */
|
|
||||||
constructor(exifValueMap: Map<number, import("./exif.js").ExifValue>);
|
|
||||||
/** @type {Map<number, ExifValue>} */
|
|
||||||
exifValueMap: Map<number, import("./exif.js").ExifValue>;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* @typedef JpegDefineQuantizationTable
|
|
||||||
* @property {number} tableNumber Table/component number.
|
|
||||||
* @property {number} precision (0=byte, 1=word).
|
|
||||||
* @property {number[]} tableValues 64 numbers representing the quantization table.
|
|
||||||
*/
|
|
||||||
export class JpegDefineQuantizationTableEvent extends Event {
|
|
||||||
/** @param {JpegDefineQuantizationTable} table */
|
|
||||||
constructor(table: JpegDefineQuantizationTable);
|
|
||||||
/** @type {JpegDefineQuantizationTable} */
|
|
||||||
quantizationTable: JpegDefineQuantizationTable;
|
|
||||||
}
|
|
||||||
export type JpegHuffmanTableType = number;
|
export type JpegHuffmanTableType = number;
|
||||||
export namespace JpegHuffmanTableType {
|
export namespace JpegHuffmanTableType {
|
||||||
const DC: number;
|
const DC: number;
|
||||||
const AC: number;
|
const AC: number;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* @typedef JpegDefineHuffmanTable
|
|
||||||
* @property {number} tableNumber Table/component number (0-3).
|
|
||||||
* @property {JpegHuffmanTableType} tableType Either DC or AC.
|
|
||||||
* @property {number[]} numberOfSymbols A 16-byte array specifying the # of symbols of each length.
|
|
||||||
* @property {number[]} symbols
|
|
||||||
*/
|
|
||||||
export class JpegDefineHuffmanTableEvent extends Event {
|
|
||||||
/** @param {JpegDefineHuffmanTable} table */
|
|
||||||
constructor(table: JpegDefineHuffmanTable);
|
|
||||||
/** @type {JpegDefineHuffmanTable} */
|
|
||||||
huffmanTable: JpegDefineHuffmanTable;
|
|
||||||
}
|
|
||||||
export type JpegDctType = number;
|
export type JpegDctType = number;
|
||||||
export namespace JpegDctType {
|
export namespace JpegDctType {
|
||||||
const BASELINE: number;
|
const BASELINE: number;
|
||||||
|
@ -126,12 +68,6 @@ export namespace JpegComponentType {
|
||||||
* @property {number} numberOfComponents Usually 1, 3, or 4.
|
* @property {number} numberOfComponents Usually 1, 3, or 4.
|
||||||
* @property {JpegComponentDetail[]} componentDetails
|
* @property {JpegComponentDetail[]} componentDetails
|
||||||
*/
|
*/
|
||||||
export class JpegStartOfFrameEvent extends Event {
|
|
||||||
/** @param {JpegStartOfFrame} sof */
|
|
||||||
constructor(sof: JpegStartOfFrame);
|
|
||||||
/** @type {JpegStartOfFrame} */
|
|
||||||
startOfFrame: JpegStartOfFrame;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* @typedef JpegStartOfScan
|
* @typedef JpegStartOfScan
|
||||||
* @property {number} componentsInScan
|
* @property {number} componentsInScan
|
||||||
|
@ -165,47 +101,47 @@ export class JpegParser extends EventTarget {
|
||||||
*/
|
*/
|
||||||
private hasApp0MarkerSegment;
|
private hasApp0MarkerSegment;
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegApp0MarkerEvent.
|
* Type-safe way to bind a listener for a JpegApp0Marker.
|
||||||
* @param {function(JpegApp0MarkerEvent): void} listener
|
* @param {function(CustomEvent<JpegApp0Marker>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onApp0Marker(listener: (arg0: JpegApp0MarkerEvent) => void): JpegParser;
|
onApp0Marker(listener: (arg0: CustomEvent<JpegApp0Marker>) => void): JpegParser;
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegApp0ExtensionEvent.
|
* Type-safe way to bind a listener for a JpegApp0Extension.
|
||||||
* @param {function(JpegApp0MarkerEvent): void} listener
|
* @param {function(CustomEvent<JpegApp0Extension>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onApp0Extension(listener: (arg0: JpegApp0MarkerEvent) => void): JpegParser;
|
onApp0Extension(listener: (arg0: CustomEvent<JpegApp0Extension>) => void): JpegParser;
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegApp1ExifEvent.
|
* Type-safe way to bind a listener for a JpegExifProfile.
|
||||||
* @param {function(JpegApp1ExifEvent): void} listener
|
* @param {function(CustomEvent<JpegExifProfile>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onApp1Exif(listener: (arg0: JpegApp1ExifEvent) => void): JpegParser;
|
onApp1Exif(listener: (arg0: CustomEvent<JpegExifProfile>) => void): JpegParser;
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegDefineQuantizationTableEvent.
|
* Type-safe way to bind a listener for a JpegDefineQuantizationTable.
|
||||||
* @param {function(JpegDefineQuantizationTableEvent): void} listener
|
* @param {function(CustomEvent<JpegDefineQuantizationTable>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onDefineQuantizationTable(listener: (arg0: JpegDefineQuantizationTableEvent) => void): JpegParser;
|
onDefineQuantizationTable(listener: (arg0: CustomEvent<JpegDefineQuantizationTable>) => void): JpegParser;
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegDefineHuffmanTableEvent.
|
* Type-safe way to bind a listener for a JpegDefineHuffmanTable.
|
||||||
* @param {function(JpegDefineHuffmanTableEvent): void} listener
|
* @param {function(CustomEvent<JpegDefineHuffmanTable>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onDefineHuffmanTable(listener: (arg0: JpegDefineHuffmanTableEvent) => void): JpegParser;
|
onDefineHuffmanTable(listener: (arg0: CustomEvent<JpegDefineHuffmanTable>) => void): JpegParser;
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegStartOfFrameEvent.
|
* Type-safe way to bind a listener for a JpegStartOfFrame.
|
||||||
* @param {function(JpegStartOfFrameEvent): void} listener
|
* @param {function(CustomEvent<JpegStartOfFrame>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onStartOfFrame(listener: (arg0: JpegStartOfFrameEvent) => void): JpegParser;
|
onStartOfFrame(listener: (arg0: CustomEvent<JpegStartOfFrame>) => void): JpegParser;
|
||||||
/**
|
/**
|
||||||
* Type-safe way to bind a listener for a JpegStartOfScanEvent.
|
* Type-safe way to bind a listener for a JpegStartOfScan.
|
||||||
* @param {function(JpegStartOfScanEvent): void} listener
|
* @param {function(CustomEvent<JpegStartOfScan>): void} listener
|
||||||
* @returns {JpegParser} for chaining
|
* @returns {JpegParser} for chaining
|
||||||
*/
|
*/
|
||||||
onStartOfScan(listener: (arg0: JpegStartOfScanEvent) => void): JpegParser;
|
onStartOfScan(listener: (arg0: CustomEvent<JpegStartOfScan>) => void): JpegParser;
|
||||||
/** @returns {Promise<void>} A Promise that resolves when the parsing is complete. */
|
/** @returns {Promise<void>} A Promise that resolves when the parsing is complete. */
|
||||||
start(): Promise<void>;
|
start(): Promise<void>;
|
||||||
}
|
}
|
||||||
|
@ -232,6 +168,7 @@ export type JpegApp0Extension = {
|
||||||
*/
|
*/
|
||||||
thumbnailData: Uint8Array;
|
thumbnailData: Uint8Array;
|
||||||
};
|
};
|
||||||
|
export type JpegExifProfile = Map<number, import("./exif.js").ExifValue>;
|
||||||
export type JpegDefineQuantizationTable = {
|
export type JpegDefineQuantizationTable = {
|
||||||
/**
|
/**
|
||||||
* Table/component number.
|
* Table/component number.
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"jpeg.d.ts","sourceRoot":"","sources":["../../../image/parsers/jpeg.js"],"names":[],"mappings":"iCAsBW,MAAM;;;;;;;;;;8BAWN,MAAM;;;;;;;;;;;;;+BAwBN,MAAM;;;;;;AAOjB;;;;;;;;;GASG;AAEH;IACE,8BAA8B;IAC9B,0BAIC;IAFC,6BAA6B;IAC7B,YADW,cAAc,CACA;CAE5B;2CAEU,MAAM;;;;;;AAOjB;;;;GAIG;AAEH;IACE,iCAAiC;IACjC,0BAIC;IAFC,gCAAgC;IAChC,eADW,iBAAiB,CACA;CAE/B;AAED;IACE,mDAAmD;IACnD,sEAIC;IAFC,qCAAqC;IACrC,yDAAgC;CAEnC;AAED;;;;;GAKG;AAEH;IACE,iDAAiD;IACjD,mBADY,2BAA2B,EAKtC;IAFC,0CAA0C;IAC1C,mBADW,2BAA2B,CACR;CAEjC;mCAEU,MAAM;;;;;AAMjB;;;;;;GAMG;AAEH;IACE,4CAA4C;IAC5C,mBADY,sBAAsB,EAKjC;IAFC,qCAAqC;IACrC,cADW,sBAAsB,CACR;CAE5B;0BAEU,MAAM;;;;;;gCAON,MAAM;;;;;;;;AASjB;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH;IACE,oCAAoC;IACpC,iBADY,gBAAgB,EAK3B;IAFC,+BAA+B;IAC/B,cADW,gBAAgB,CACJ;CAE1B;AAED;;;;;;;;;;;;;GAaG;AAEH;IACE,sBAIC;IAFC,8BAA8B;IAC9B,KADW,eAAe,CACZ;CAEjB;AAED;IAaE,8BAA8B;IAC9B,gBADY,WAAW,EAItB;IAhBD;;;OAGG;IACH,gBAAQ;IAER;;;OAGG;IACH,6BAA6B;IAQ7B;;;;OAIG;IACH,8BAHoB,mBAAmB,KAAG,IAAI,GACjC,UAAU,CAKtB;IAED;;;;OAIG;IACH,iCAHoB,mBAAmB,KAAG,IAAI,GACjC,UAAU,CAKtB;IAED;;;;OAIG;IACH,4BAHoB,iBAAiB,KAAG,IAAI,GAC/B,UAAU,CAKtB;IAED;;;;OAIG;IACH,2CAHoB,gCAAgC,KAAG,IAAI,GAC9C,UAAU,CAKtB;IAED;;;;OAIG;IACH,sCAHoB,2BAA2B,KAAG,IAAI,GACzC,UAAU,CAKtB;IAED;;;;OAIG;IACH,gCAHoB,qBAAqB,KAAG,IAAI,GACnC,UAAU,CAKtB;IAED;;;;OAIG;IACH,+BAHoB,oBAAoB,KAAG,IAAI,GAClC,UAAU,CAKtB;IAED,qFAAqF;IACrF,SADc,QAAQ,IAAI,CAAC,CA8O1B;CACF;wBAvhBa,OAAO,WAAW,EAAE,SAAS;;;;;iBAqD7B,MAAM;kBACN,gBAAgB;cAChB,MAAM;cACN,MAAM;gBACN,MAAM;gBACN,MAAM;;;;mBACN,UAAU;;;qBAqBV,4BAA4B;;;;mBAC5B,UAAU;;;;;;iBAuBV,MAAM;;;;eACN,MAAM;;;;iBACN,MAAM,EAAE;;;;;;iBAoBR,MAAM;;;;eACN,oBAAoB;;;;qBACpB,MAAM,EAAE;aACR,MAAM,EAAE;;;iBA8BR,iBAAiB;4BACjB,MAAM;8BACN,MAAM;6BACN,MAAM;;;aAKN,WAAW;mBACX,MAAM;iBACN,MAAM;gBACN,MAAM;;;;wBACN,MAAM;sBACN,mBAAmB,EAAE;;;sBAcrB,MAAM;wBACN,MAAM;2BACN,MAAM;yBACN,MAAM;4BACN,MAAM;yBACN,MAAM;4BACN,MAAM;8BACN,MAAM;4BACN,MAAM;wCACN,MAAM;kBACN,UAAU"}
|
{"version":3,"file":"jpeg.d.ts","sourceRoot":"","sources":["../../../image/parsers/jpeg.js"],"names":[],"mappings":"iCAuBW,MAAM;;;;;;;;;;8BAWN,MAAM;;;;;;;;;;;;;+BAwBN,MAAM;;;;;;2CAkBN,MAAM;;;;;;mCAsBN,MAAM;;;;;0BAcN,MAAM;;;;;;gCAON,MAAM;;;;;;;;AASjB;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;GAaG;AAEH;IACE,sBAIC;IAFC,8BAA8B;IAC9B,KADW,eAAe,CACZ;CAEjB;AAED;IAaE,8BAA8B;IAC9B,gBADY,WAAW,EAItB;IAhBD;;;OAGG;IACH,gBAAQ;IAER;;;OAGG;IACH,6BAA6B;IAQ7B;;;;OAIG;IACH,8BAHoB,YAAY,cAAc,CAAC,KAAG,IAAI,GACzC,UAAU,CAKtB;IAED;;;;OAIG;IACH,iCAHoB,YAAY,iBAAiB,CAAC,KAAG,IAAI,GAC5C,UAAU,CAKtB;IAED;;;;OAIG;IACH,4BAHoB,YAAY,eAAe,CAAC,KAAG,IAAI,GAC1C,UAAU,CAKtB;IAED;;;;OAIG;IACH,2CAHoB,YAAY,2BAA2B,CAAC,KAAG,IAAI,GACtD,UAAU,CAKtB;IAED;;;;OAIG;IACH,sCAHoB,YAAY,sBAAsB,CAAC,KAAG,IAAI,GACjD,UAAU,CAKtB;IAED;;;;OAIG;IACH,gCAHoB,YAAY,gBAAgB,CAAC,KAAG,IAAI,GAC3C,UAAU,CAKtB;IAED;;;;OAIG;IACH,+BAHoB,YAAY,eAAe,CAAC,KAAG,IAAI,GAC1C,UAAU,CAKtB;IAED,qFAAqF;IACrF,SADc,QAAQ,IAAI,CAAC,CA8O1B;CACF;wBAnea,OAAO,WAAW,EAAE,SAAS;;;;;iBAqD7B,MAAM;kBACN,gBAAgB;cAChB,MAAM;cACN,MAAM;gBACN,MAAM;gBACN,MAAM;;;;mBACN,UAAU;;;qBAYV,4BAA4B;;;;mBAC5B,UAAU;;;;;;;iBAOV,MAAM;;;;eACN,MAAM;;;;iBACN,MAAM,EAAE;;;;;;iBAWR,MAAM;;;;eACN,oBAAoB;;;;qBACpB,MAAM,EAAE;aACR,MAAM,EAAE;;;iBAqBR,iBAAiB;4BACjB,MAAM;8BACN,MAAM;6BACN,MAAM;;;aAKN,WAAW;mBACX,MAAM;iBACN,MAAM;gBACN,MAAM;;;;wBACN,MAAM;sBACN,mBAAmB,EAAE;;;sBAKrB,MAAM;wBACN,MAAM;2BACN,MAAM;yBACN,MAAM;4BACN,MAAM;yBACN,MAAM;4BACN,MAAM;8BACN,MAAM;4BACN,MAAM;wCACN,MAAM;kBACN,UAAU"}
|
2
types/index.d.ts
vendored
2
types/index.d.ts
vendored
|
@ -24,6 +24,6 @@ export type JpegStartOfScan = import('./image/parsers/jpeg.js').JpegStartOfScan;
|
||||||
export { UnarchiveEvent, UnarchiveEventType, UnarchiveInfoEvent, UnarchiveErrorEvent, UnarchiveStartEvent, UnarchiveFinishEvent, UnarchiveProgressEvent, UnarchiveExtractEvent, Unarchiver, Unzipper, Unrarrer, Untarrer, getUnarchiver } from "./archive/decompress.js";
|
export { UnarchiveEvent, UnarchiveEventType, UnarchiveInfoEvent, UnarchiveErrorEvent, UnarchiveStartEvent, UnarchiveFinishEvent, UnarchiveProgressEvent, UnarchiveExtractEvent, Unarchiver, Unzipper, Unrarrer, Untarrer, getUnarchiver } from "./archive/decompress.js";
|
||||||
export { getFullMIMEString, getShortMIMEString } from "./codecs/codecs.js";
|
export { getFullMIMEString, getShortMIMEString } from "./codecs/codecs.js";
|
||||||
export { GifParseEventType, GifParser } from "./image/parsers/gif.js";
|
export { GifParseEventType, GifParser } from "./image/parsers/gif.js";
|
||||||
export { JpegApp0ExtensionEvent, JpegApp0MarkerEvent, JpegApp1ExifEvent, JpegComponentType, JpegDctType, JpegDefineHuffmanTableEvent, JpegDefineQuantizationTableEvent, JpegDensityUnits, JpegExtensionThumbnailFormat, JpegHuffmanTableType, JpegParseEventType, JpegParser, JpegSegmentType, JpegStartOfFrameEvent, JpegStartOfScanEvent } from "./image/parsers/jpeg.js";
|
export { JpegComponentType, JpegDctType, JpegDensityUnits, JpegExtensionThumbnailFormat, JpegHuffmanTableType, JpegParseEventType, JpegParser, JpegSegmentType } from "./image/parsers/jpeg.js";
|
||||||
export { convertWebPtoPNG, convertWebPtoJPG } from "./image/webp-shim/webp-shim.js";
|
export { convertWebPtoPNG, convertWebPtoJPG } from "./image/webp-shim/webp-shim.js";
|
||||||
//# sourceMappingURL=index.d.ts.map
|
//# sourceMappingURL=index.d.ts.map
|
Loading…
Add table
Add a link
Reference in a new issue