image-in-browser
Version:
Package for encoding / decoding images, transforming images, applying filters, drawing primitives on images on the client side (no need for server Node.js)
713 lines • 29.5 kB
JavaScript
import { BmpDecoder } from './formats/bmp-decoder.js';
import { BmpEncoder } from './formats/bmp-encoder.js';
import { GifDecoder } from './formats/gif-decoder.js';
import { GifEncoder } from './formats/gif-encoder.js';
import { IcoDecoder } from './formats/ico-decoder.js';
import { IcoEncoder } from './formats/ico-encoder.js';
import { JpegDecoder } from './formats/jpeg-decoder.js';
import { JpegChroma, JpegEncoder } from './formats/jpeg-encoder.js';
import { PngDecoder } from './formats/png-decoder.js';
import { PngEncoder } from './formats/png-encoder.js';
import { TgaDecoder } from './formats/tga-decoder.js';
import { TgaEncoder } from './formats/tga-encoder.js';
import { TiffDecoder } from './formats/tiff-decoder.js';
import { TiffEncoder } from './formats/tiff-encoder.js';
import { PngFilterType } from './formats/png/png-filter-type.js';
import { DitherKernel } from './filter/dither-kernel.js';
import { JpegUtils } from './formats/jpeg/jpeg-utils.js';
import { WebPDecoder } from './formats/webp-decoder.js';
import { PnmDecoder } from './formats/pnm-decoder.js';
import { ImageFormat } from './formats/image-format.js';
import { PsdDecoder } from './formats/psd-decoder.js';
import { PvrEncoder } from './formats/pvr-encoder.js';
import { PvrDecoder } from './formats/pvr-decoder.js';
export { ChannelOrder, ChannelOrderLength } from './color/channel-order.js';
export { Channel } from './color/channel.js';
export { ColorFloat16 } from './color/color-float16.js';
export { ColorFloat32 } from './color/color-float32.js';
export { ColorFloat64 } from './color/color-float64.js';
export { ColorInt8 } from './color/color-int8.js';
export { ColorInt16 } from './color/color-int16.js';
export { ColorInt32 } from './color/color-int32.js';
export { ColorRgb8 } from './color/color-rgb8.js';
export { ColorRgba8 } from './color/color-rgba8.js';
export { ColorUint1 } from './color/color-uint1.js';
export { ColorUint2 } from './color/color-uint2.js';
export { ColorUint4 } from './color/color-uint4.js';
export { ColorUint8 } from './color/color-uint8.js';
export { ColorUint16 } from './color/color-uint16.js';
export { ColorUint32 } from './color/color-uint32.js';
export { Format, FormatType, FormatMaxValue, FormatSize, FormatToFormatType, getRowStride, convertFormatValue, } from './color/format.js';
export { ColorUtils } from './color/color-utils.js';
export { ArrayUtils } from './common/array-utils.js';
export { BitUtils } from './common/bit-utils.js';
export { Crc32 } from './common/crc32.js';
export { Float16 } from './common/float16.js';
export { InputBuffer } from './common/input-buffer.js';
export { Interpolation } from './common/interpolation.js';
export { Line } from './common/line.js';
export { MathUtils } from './common/math-utils.js';
export { OutputBuffer, } from './common/output-buffer.js';
export { Point } from './common/point.js';
export { RandomUtils } from './common/random-utils.js';
export { Rational } from './common/rational.js';
export { Rectangle } from './common/rectangle.js';
export { StringUtils } from './common/string-utils.js';
export { BlendMode } from './draw/blend-mode.js';
export { CircleQuadrant } from './draw/circle-quadrant.js';
export { Draw, } from './draw/draw.js';
export { LibError } from './error/lib-error.js';
export { IfdAsciiValue } from './exif/ifd-value/ifd-ascii-value.js';
export { IfdByteValue } from './exif/ifd-value/ifd-byte-value.js';
export { IfdDoubleValue } from './exif/ifd-value/ifd-double-value.js';
export { IfdLongValue } from './exif/ifd-value/ifd-long-value.js';
export { IfdRationalValue } from './exif/ifd-value/ifd-rational-value.js';
export { IfdSByteValue } from './exif/ifd-value/ifd-sbyte-value.js';
export { IfdShortValue } from './exif/ifd-value/ifd-short-value.js';
export { IfdSingleValue } from './exif/ifd-value/ifd-single-value.js';
export { IfdSLongValue } from './exif/ifd-value/ifd-slong-value.js';
export { IfdSRationalValue } from './exif/ifd-value/ifd-srational-value.js';
export { IfdSShortValue } from './exif/ifd-value/ifd-sshort-value.js';
export { IfdUndefinedValue } from './exif/ifd-value/ifd-undefined-value.js';
export { IfdValue } from './exif/ifd-value/ifd-value.js';
export { ExifData } from './exif/exif-data.js';
export { ExifEntry } from './exif/exif-entry.js';
export { ExifTag, ExifGpsTags, ExifImageTags, ExifInteropTags, ExifTagNameToID, } from './exif/exif-tag.js';
export { IfdContainer } from './exif/ifd-container.js';
export { IfdDirectory } from './exif/ifd-directory.js';
export { IfdValueType, IfdValueTypeSize, getIfdValueTypeSize, getIfdValueTypeString, } from './exif/ifd-value-type.js';
export { ContrastMode } from './filter/contrast-mode.js';
export { DitherKernel, DitherKernels } from './filter/dither-kernel.js';
export { Filter, } from './filter/filter.js';
export { NoiseType } from './filter/noise-type.js';
export { PixelateMode } from './filter/pixelate-mode.js';
export { QuantizeMethod } from './filter/quantize-method.js';
export { SeparableKernel, } from './filter/separable-kernel.js';
export { SolarizeMode } from './filter/solarize-mode.js';
export { BmpCompressionMode } from './formats/bmp/bmp-compression-mode.js';
export { BmpFileHeader } from './formats/bmp/bmp-file-header.js';
export { BmpInfo } from './formats/bmp/bmp-info.js';
export { GifColorMap } from './formats/gif/gif-color-map.js';
export { GifImageDesc } from './formats/gif/gif-image-desc.js';
export { GifInfo } from './formats/gif/gif-info.js';
export { IcoBmpInfo } from './formats/ico/ico-bmp-info.js';
export { IcoInfoImage, } from './formats/ico/ico-info-image.js';
export { IcoInfo } from './formats/ico/ico-info.js';
export { IcoType, IcoTypeLength } from './formats/ico/ico-type.js';
export { HuffmanNode } from './formats/jpeg/huffman-node.js';
export { HuffmanParent } from './formats/jpeg/huffman-parent.js';
export { HuffmanValue } from './formats/jpeg/huffman-value.js';
export { JpegAdobe } from './formats/jpeg/jpeg-adobe.js';
export { JpegComponentData } from './formats/jpeg/jpeg-component-data.js';
export { JpegComponent } from './formats/jpeg/jpeg-component.js';
export { JpegData } from './formats/jpeg/jpeg-data.js';
export { JpegFrame } from './formats/jpeg/jpeg-frame.js';
export { JpegHuffman } from './formats/jpeg/jpeg-huffman.js';
export { JpegInfo } from './formats/jpeg/jpeg-info.js';
export { JpegJfif } from './formats/jpeg/jpeg-jfif.js';
export { JpegMarker } from './formats/jpeg/jpeg-marker.js';
export { JpegQuantize } from './formats/jpeg/jpeg-quantize.js';
export { JpegScan } from './formats/jpeg/jpeg-scan.js';
export { JpegUtils } from './formats/jpeg/jpeg-utils.js';
export { PngBlendMode } from './formats/png/png-blend-mode.js';
export { PngColorType } from './formats/png/png-color-type.js';
export { PngDisposeMode } from './formats/png/png-dispose-mode.js';
export { PngFilterType } from './formats/png/png-filter-type.js';
export { PngFrame } from './formats/png/png-frame.js';
export { PngInfo } from './formats/png/png-info.js';
export { PngPhysicalPixelDimensions } from './formats/png/png-physical-pixel-dimensions.js';
export { PnmFormat } from './formats/pnm/pnm-format.js';
export { PnmInfo } from './formats/pnm/pnm-info.js';
export { PsdBevelEffect, } from './formats/psd/effect/psd-bevel-effect.js';
export { PsdDropShadowEffect, } from './formats/psd/effect/psd-drop-shadow-effect.js';
export { PsdEffect, } from './formats/psd/effect/psd-effect.js';
export { PsdInnerGlowEffect, } from './formats/psd/effect/psd-inner-glow-effect.js';
export { PsdInnerShadowEffect, } from './formats/psd/effect/psd-inner-shadow-effect.js';
export { PsdOuterGlowEffect, } from './formats/psd/effect/psd-outer-glow-effect.js';
export { PsdSolidFillEffect, } from './formats/psd/effect/psd-solid-fill-effect.js';
export { PsdLayerDataFactory } from './formats/psd/layer-data/psd-layer-data-factory.js';
export { PsdLayerData } from './formats/psd/layer-data/psd-layer-data.js';
export { PsdLayerAdditionalData } from './formats/psd/layer-data/psd-layer-additional-data.js';
export { PsdLayerSectionDivider } from './formats/psd/layer-data/psd-layer-section-divider.js';
export { PsdBlendMode } from './formats/psd/psd-blend-mode.js';
export { PsdBlendingRanges } from './formats/psd/psd-blending-ranges.js';
export { PsdChannel, } from './formats/psd/psd-channel.js';
export { PsdColorMode } from './formats/psd/psd-color-mode.js';
export { PsdFlag } from './formats/psd/psd-flag.js';
export { PsdImage } from './formats/psd/psd-image.js';
export { PsdImageResource } from './formats/psd/psd-image-resource.js';
export { PsdLayer } from './formats/psd/psd-layer.js';
export { PsdMask } from './formats/psd/psd-mask.js';
export { PvrAppleInfo, } from './formats/pvr/pvr-apple-info.js';
export { PvrBitUtility } from './formats/pvr/pvr-bit-utility.js';
export { PvrColorBoundingBox } from './formats/pvr/pvr-color-bounding-box.js';
export { PvrColorRgb } from './formats/pvr/pvr-color-rgb.js';
export { PvrColorRgba } from './formats/pvr/pvr-color-rgba.js';
export { PvrFormat } from './formats/pvr/pvr-format.js';
export { PvrPacket } from './formats/pvr/pvr-packet.js';
export { Pvr2Info } from './formats/pvr/pvr2-info.js';
export { Pvr3Info } from './formats/pvr/pvr3-info.js';
export { TgaImageType, TgaImageTypeLength, } from './formats/tga/tga-image-type.js';
export { TgaInfo } from './formats/tga/tga-info.js';
export { TiffBitReader } from './formats/tiff/tiff-bit-reader.js';
export { TiffCompression } from './formats/tiff/tiff-compression.js';
export { TiffEntry } from './formats/tiff/tiff-entry.js';
export { TiffFaxDecoder, } from './formats/tiff/tiff-fax-decoder.js';
export { TiffFormat } from './formats/tiff/tiff-format.js';
export { TiffImageType } from './formats/tiff/tiff-image-type.js';
export { TiffImage } from './formats/tiff/tiff-image.js';
export { TiffInfo } from './formats/tiff/tiff-info.js';
export { LzwDecoder } from './formats/tiff/tiff-lzw-decoder.js';
export { TiffPhotometricType, TiffPhotometricTypeLength, } from './formats/tiff/tiff-photometric-type.js';
export { VP8BandProbas } from './formats/webp/vp8-band-probas.js';
export { VP8BitReader } from './formats/webp/vp8-bit-reader.js';
export { VP8FInfo } from './formats/webp/vp8-f-info.js';
export { VP8FilterHeader } from './formats/webp/vp8-filter-header.js';
export { VP8Filter } from './formats/webp/vp8-filter.js';
export { VP8FrameHeader } from './formats/webp/vp8-frame-header.js';
export { VP8MBData } from './formats/webp/vp8-mb-data.js';
export { VP8MB } from './formats/webp/vp8-mb.js';
export { VP8PictureHeader } from './formats/webp/vp8-picture-header.js';
export { VP8Proba } from './formats/webp/vp8-proba.js';
export { VP8QuantMatrix } from './formats/webp/vp8-quant-matrix.js';
export { VP8Random } from './formats/webp/vp8-random.js';
export { VP8SegmentHeader } from './formats/webp/vp8-segment-header.js';
export { VP8TopSamples } from './formats/webp/vp8-top-samples.js';
export { VP8 } from './formats/webp/vp8.js';
export { VP8LBitReader } from './formats/webp/vp8l-bit-reader.js';
export { VP8LColorCache } from './formats/webp/vp8l-color-cache.js';
export { VP8LImageTransformType } from './formats/webp/vp8l-image-transform-type.js';
export { VP8LInternal } from './formats/webp/vp8l-internal.js';
export { VP8LMultipliers } from './formats/webp/vp8l-multipliers.js';
export { VP8LTransform } from './formats/webp/vp8l-transform.js';
export { VP8L } from './formats/webp/vp8l.js';
export { WebPAlpha } from './formats/webp/webp-alpha.js';
export { WebPFilters } from './formats/webp/webp-filters.js';
export { WebPFormat } from './formats/webp/webp-format.js';
export { WebPFrame } from './formats/webp/webp-frame.js';
export { HuffmanTreeGroup } from './formats/webp/webp-huffman-tree-group.js';
export { HuffmanTree } from './formats/webp/webp-huffman-tree.js';
export { WebPInfoInternal } from './formats/webp/webp-info-internal.js';
export { WebPInfo } from './formats/webp/webp-info.js';
export { BmpDecoder } from './formats/bmp-decoder.js';
export { BmpEncoder } from './formats/bmp-encoder.js';
export { DibDecoder } from './formats/dib-decoder.js';
export { GifDecoder } from './formats/gif-decoder.js';
export { GifEncoder } from './formats/gif-encoder.js';
export { IcoDecoder } from './formats/ico-decoder.js';
export { IcoEncoder } from './formats/ico-encoder.js';
export { ImageFormat } from './formats/image-format.js';
export { JpegDecoder } from './formats/jpeg-decoder.js';
export { JpegChroma, JpegEncoder, } from './formats/jpeg-encoder.js';
export { PngDecoder } from './formats/png-decoder.js';
export { PngEncoder } from './formats/png-encoder.js';
export { PnmDecoder } from './formats/pnm-decoder.js';
export { PsdDecoder } from './formats/psd-decoder.js';
export { PvrDecoder } from './formats/pvr-decoder.js';
export { PvrEncoder } from './formats/pvr-encoder.js';
export { TgaDecoder } from './formats/tga-decoder.js';
export { TgaEncoder } from './formats/tga-encoder.js';
export { TiffDecoder } from './formats/tiff-decoder.js';
export { TiffEncoder } from './formats/tiff-encoder.js';
export { WebPDecoder } from './formats/webp-decoder.js';
export { WinEncoder } from './formats/win-encoder.js';
export { BinaryQuantizer } from './image/binary-quantizer.js';
export { FrameType } from './image/frame-type.js';
export { HeapNode } from './image/heap-node.js';
export { IccProfile } from './image/icc-profile.js';
export { IccProfileCompression } from './image/icc-profile-compression.js';
export { MemoryImageDataFloat16 } from './image/image-data-float16.js';
export { MemoryImageDataFloat32 } from './image/image-data-float32.js';
export { MemoryImageDataFloat64 } from './image/image-data-float64.js';
export { MemoryImageDataInt8 } from './image/image-data-int8.js';
export { MemoryImageDataInt16 } from './image/image-data-int16.js';
export { MemoryImageDataInt32 } from './image/image-data-int32.js';
export { MemoryImageDataUint1 } from './image/image-data-uint1.js';
export { MemoryImageDataUint2 } from './image/image-data-uint2.js';
export { MemoryImageDataUint4 } from './image/image-data-uint4.js';
export { MemoryImageDataUint8 } from './image/image-data-uint8.js';
export { MemoryImageDataUint16 } from './image/image-data-uint16.js';
export { MemoryImageDataUint32 } from './image/image-data-uint32.js';
export { ImageUtils } from './image/image-utils.js';
export { MemoryImage, } from './image/image.js';
export { NeuralQuantizer } from './image/neural-quantizer.js';
export { OctreeNode } from './image/octree-node.js';
export { OctreeQuantizer } from './image/octree-quantizer.js';
export { PaletteFloat16 } from './image/palette-float16.js';
export { PaletteFloat32 } from './image/palette-float32.js';
export { PaletteFloat64 } from './image/palette-float64.js';
export { PaletteInt8 } from './image/palette-int8.js';
export { PaletteInt16 } from './image/palette-int16.js';
export { PaletteInt32 } from './image/palette-int32.js';
export { PaletteUint8 } from './image/palette-uint8.js';
export { PaletteUint16 } from './image/palette-uint16.js';
export { PaletteUint32 } from './image/palette-uint32.js';
export { PixelFloat16 } from './image/pixel-float16.js';
export { PixelFloat32 } from './image/pixel-float32.js';
export { PixelFloat64 } from './image/pixel-float64.js';
export { PixelInt8 } from './image/pixel-int8.js';
export { PixelInt16 } from './image/pixel-int16.js';
export { PixelInt32 } from './image/pixel-int32.js';
export { PixelUint1 } from './image/pixel-uint1.js';
export { PixelUint2 } from './image/pixel-uint2.js';
export { PixelUint4 } from './image/pixel-uint4.js';
export { PixelUint8 } from './image/pixel-uint8.js';
export { PixelUint16 } from './image/pixel-uint16.js';
export { PixelUint32 } from './image/pixel-uint32.js';
export { PixelUndefined } from './image/pixel-undefined.js';
export { PixelRangeIterator } from './image/pixel-range-iterator.js';
export { UndefinedPixel } from './image/pixel.js';
export { QuantizerType } from './image/quantizer-type.js';
export { ExpandCanvasPosition } from './transform/expand-canvas-position.js';
export { FlipDirection } from './transform/flip-direction.js';
export { Transform, } from './transform/transform.js';
export { TrimMode } from './transform/trim-mode.js';
export { TrimSide } from './transform/trim-side.js';
export function findDecoderForMimeType(mimeType) {
const type = mimeType.toLowerCase();
switch (type) {
case 'image/jpeg':
return new JpegDecoder();
case 'image/png':
return new PngDecoder();
case 'image/x-targa':
case 'image/x-tga':
return new TgaDecoder();
case 'image/webp':
return new WebPDecoder();
case 'image/gif':
return new GifDecoder();
case 'image/tiff':
case 'image/tiff-fx':
return new TiffDecoder();
case 'application/photoshop':
case 'application/psd':
case 'application/x-photoshop':
case 'image/psd':
case 'image/vnd.adobe.photoshop':
return new PsdDecoder();
case 'image/bmp':
case 'image/x-bmp':
return new BmpDecoder();
case 'image/x-icon':
case 'image/vnd.microsoft.icon':
return new IcoDecoder();
case 'image/x-portable-bitmap':
case 'image/x-portable-pixmap':
case 'image/x-portable-anymap':
return new PnmDecoder();
case 'image/x-pvr':
return new PvrDecoder();
default:
return undefined;
}
}
export function findDecoderForNamedImage(name) {
const n = name.toLowerCase();
if (n.endsWith('.jpg') || n.endsWith('.jpeg')) {
return new JpegDecoder();
}
if (n.endsWith('.png')) {
return new PngDecoder();
}
if (n.endsWith('.tga')) {
return new TgaDecoder();
}
if (n.endsWith('.webp')) {
return new WebPDecoder();
}
if (n.endsWith('.gif')) {
return new GifDecoder();
}
if (n.endsWith('.tif') || n.endsWith('.tiff')) {
return new TiffDecoder();
}
if (n.endsWith('.psd')) {
return new PsdDecoder();
}
if (n.endsWith('.bmp')) {
return new BmpDecoder();
}
if (n.endsWith('.ico')) {
return new IcoDecoder();
}
if (n.endsWith('.pnm') ||
n.endsWith('.pbm') ||
n.endsWith('.pgm') ||
n.endsWith('.ppm')) {
return new PnmDecoder();
}
if (n.endsWith('.pvr')) {
return new PvrDecoder();
}
return undefined;
}
export function findEncoderForMimeType(mimeType) {
const type = mimeType.toLowerCase();
switch (type) {
case 'image/jpeg':
return new JpegEncoder();
case 'image/png':
return new PngEncoder();
case 'image/x-targa':
case 'image/x-tga':
return new TgaEncoder();
case 'image/gif':
return new GifEncoder();
case 'image/tiff':
case 'image/tiff-fx':
return new TiffEncoder();
case 'image/bmp':
case 'image/x-bmp':
return new BmpEncoder();
case 'image/x-icon':
case 'image/vnd.microsoft.icon':
return new IcoEncoder();
case 'image/x-pvr':
return new PvrEncoder();
default:
return undefined;
}
}
export function findEncoderForNamedImage(name) {
const n = name.toLowerCase();
if (n.endsWith('.jpg') || n.endsWith('.jpeg')) {
return new JpegEncoder();
}
if (n.endsWith('.png')) {
return new PngEncoder();
}
if (n.endsWith('.tga')) {
return new TgaEncoder();
}
if (n.endsWith('.gif')) {
return new GifEncoder();
}
if (n.endsWith('.tif') || n.endsWith('.tiff')) {
return new TiffEncoder();
}
if (n.endsWith('.bmp')) {
return new BmpEncoder();
}
if (n.endsWith('.ico')) {
return new IcoEncoder();
}
if (n.endsWith('.cur')) {
return new IcoEncoder();
}
if (n.endsWith('.pvr')) {
return new PvrEncoder();
}
return undefined;
}
export function findFormatForData(data) {
const decoder = findDecoderForData(data);
if (decoder === undefined) {
return ImageFormat.invalid;
}
return decoder.format;
}
export function findDecoderForFormat(format) {
switch (format) {
case ImageFormat.bmp:
return new BmpDecoder();
case ImageFormat.gif:
return new GifDecoder();
case ImageFormat.ico:
return new IcoDecoder();
case ImageFormat.jpg:
return new JpegDecoder();
case ImageFormat.png:
return new PngDecoder();
case ImageFormat.pnm:
return new PnmDecoder();
case ImageFormat.psd:
return new PsdDecoder();
case ImageFormat.pvr:
return new PvrDecoder();
case ImageFormat.tga:
return new TgaDecoder();
case ImageFormat.tiff:
return new TiffDecoder();
case ImageFormat.webp:
return new WebPDecoder();
default:
return undefined;
}
}
export function findDecoderForData(data) {
const bytes = data instanceof Uint8Array ? data : new Uint8Array(data);
const jpg = new JpegDecoder();
if (jpg.isValidFile(bytes)) {
return jpg;
}
const png = new PngDecoder();
if (png.isValidFile(bytes)) {
return png;
}
const gif = new GifDecoder();
if (gif.isValidFile(bytes)) {
return gif;
}
const webp = new WebPDecoder();
if (webp.isValidFile(bytes)) {
return webp;
}
const tiff = new TiffDecoder();
if (tiff.isValidFile(bytes)) {
return tiff;
}
const psd = new PsdDecoder();
if (psd.isValidFile(bytes)) {
return psd;
}
const bmp = new BmpDecoder();
if (bmp.isValidFile(bytes)) {
return bmp;
}
const tga = new TgaDecoder();
if (tga.isValidFile(bytes)) {
return tga;
}
const ico = new IcoDecoder();
if (ico.isValidFile(bytes)) {
return ico;
}
const pvr = new PvrDecoder();
if (pvr.isValidFile(bytes)) {
return pvr;
}
const pnm = new PnmDecoder();
if (pnm.isValidFile(bytes)) {
return pnm;
}
return undefined;
}
export function decodeImage(opt) {
const decoder = findDecoderForData(opt.data);
if (decoder === undefined) {
return undefined;
}
const dataUint8 = new Uint8Array(opt.data);
if (opt.largest === true && decoder instanceof IcoDecoder) {
return decoder.decodeImageLargest(dataUint8);
}
return decoder.decode({
bytes: dataUint8,
frameIndex: opt.frameIndex,
});
}
export function decodeImageByMimeType(opt) {
const decoder = findDecoderForMimeType(opt.mimeType);
if (decoder !== undefined) {
const dataUint8 = new Uint8Array(opt.data);
if (opt.largest === true && decoder instanceof IcoDecoder) {
return decoder.decodeImageLargest(dataUint8);
}
return decoder.decode({
bytes: dataUint8,
frameIndex: opt.frameIndex,
});
}
return decodeImage(opt);
}
export function decodeNamedImage(opt) {
const decoder = findDecoderForNamedImage(opt.name);
if (decoder !== undefined) {
const dataUint8 = new Uint8Array(opt.data);
if (opt.largest === true && decoder instanceof IcoDecoder) {
return decoder.decodeImageLargest(dataUint8);
}
return decoder.decode({
bytes: dataUint8,
frameIndex: opt.frameIndex,
});
}
return decodeImage(opt);
}
export function encodeImageByMimeType(opt) {
var _a;
const skipExif = (_a = opt.skipExif) !== null && _a !== void 0 ? _a : false;
const encoder = findEncoderForMimeType(opt.mimeType);
if (encoder === undefined) {
return undefined;
}
return encoder.encode({
image: opt.image,
skipExif: skipExif,
});
}
export function encodeNamedImage(opt) {
var _a;
const skipExif = (_a = opt.skipExif) !== null && _a !== void 0 ? _a : false;
const encoder = findEncoderForNamedImage(opt.name);
if (encoder === undefined) {
return undefined;
}
return encoder.encode({
image: opt.image,
skipExif: skipExif,
});
}
export function decodeJpg(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new JpegDecoder().decode({
bytes: dataUint8,
});
}
export function encodeJpg(opt) {
var _a, _b, _c;
const skipExif = (_a = opt.skipExif) !== null && _a !== void 0 ? _a : false;
const quality = (_b = opt.quality) !== null && _b !== void 0 ? _b : 100;
const chroma = (_c = opt.chroma) !== null && _c !== void 0 ? _c : JpegChroma.yuv444;
return new JpegEncoder(quality).encode({
image: opt.image,
chroma: chroma,
skipExif: skipExif,
});
}
export function decodeJpgExif(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new JpegUtils().decodeExif(dataUint8);
}
export function injectJpgExif(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new JpegUtils().injectExif(opt.exifData, dataUint8);
}
export function decodePng(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new PngDecoder().decode({
bytes: dataUint8,
frameIndex: opt.frameIndex,
});
}
export function encodePng(opt) {
var _a, _b, _c;
const singleFrame = (_a = opt.singleFrame) !== null && _a !== void 0 ? _a : false;
const level = (_b = opt.level) !== null && _b !== void 0 ? _b : 6;
const filter = (_c = opt.filter) !== null && _c !== void 0 ? _c : PngFilterType.paeth;
return new PngEncoder({
filter: filter,
level: level,
}).encode({
image: opt.image,
singleFrame: singleFrame,
});
}
export function decodePnm(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new PnmDecoder().decode({
bytes: dataUint8,
});
}
export function decodeTga(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new TgaDecoder().decode({
bytes: dataUint8,
frameIndex: opt.frameIndex,
});
}
export function encodeTga(opt) {
return new TgaEncoder().encode({
image: opt.image,
});
}
export function decodeWebP(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new WebPDecoder().decode({
bytes: dataUint8,
frameIndex: opt.frameIndex,
});
}
export function decodeGif(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new GifDecoder().decode({
bytes: dataUint8,
frameIndex: opt.frameIndex,
});
}
export function encodeGif(opt) {
var _a, _b, _c, _d, _e;
const singleFrame = (_a = opt.singleFrame) !== null && _a !== void 0 ? _a : false;
const repeat = (_b = opt.repeat) !== null && _b !== void 0 ? _b : 0;
const samplingFactor = (_c = opt.samplingFactor) !== null && _c !== void 0 ? _c : 10;
const dither = (_d = opt.dither) !== null && _d !== void 0 ? _d : DitherKernel.floydSteinberg;
const ditherSerpentine = (_e = opt.ditherSerpentine) !== null && _e !== void 0 ? _e : false;
return new GifEncoder({
repeat: repeat,
samplingFactor: samplingFactor,
dither: dither,
ditherSerpentine: ditherSerpentine,
}).encode({
image: opt.image,
singleFrame: singleFrame,
});
}
export function decodeTiff(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new TiffDecoder().decode({
bytes: dataUint8,
frameIndex: opt.frameIndex,
});
}
export function encodeTiff(opt) {
var _a, _b;
const singleFrame = (_a = opt.singleFrame) !== null && _a !== void 0 ? _a : false;
const skipExif = (_b = opt.skipExif) !== null && _b !== void 0 ? _b : false;
return new TiffEncoder().encode({
image: opt.image,
singleFrame: singleFrame,
skipExif: skipExif,
});
}
export function decodePsd(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new PsdDecoder().decode({
bytes: dataUint8,
});
}
export function decodeBmp(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new BmpDecoder().decode({
bytes: dataUint8,
});
}
export function encodeBmp(opt) {
return new BmpEncoder().encode({
image: opt.image,
});
}
export function decodeIco(opt) {
const dataUint8 = new Uint8Array(opt.data);
const decoder = new IcoDecoder();
if (opt.largest === true) {
return decoder.decodeImageLargest(dataUint8);
}
return decoder.decode({
bytes: dataUint8,
frameIndex: opt.frameIndex,
});
}
export function encodeIco(opt) {
var _a;
const singleFrame = (_a = opt.singleFrame) !== null && _a !== void 0 ? _a : false;
return new IcoEncoder().encode({
image: opt.image,
singleFrame: singleFrame,
});
}
export function encodeIcoImages(opt) {
return new IcoEncoder().encodeImages(opt.images);
}
export function decodePvr(opt) {
const dataUint8 = new Uint8Array(opt.data);
return new PvrDecoder().decode({
bytes: dataUint8,
});
}
export function encodePvr(opt) {
return new PvrEncoder().encode({
image: opt.image,
});
}
//# sourceMappingURL=index.js.map