forked from external-repos/squoosh
* Adding chroma subsampling for mozjpeg * Adding separate chroma quality. * Preact sometimes removes the inline styles, this fixes it. * Simplifying chroma subsample * Adding comments
50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
export enum MozJpegColorSpace {
|
|
GRAYSCALE = 1,
|
|
RGB,
|
|
YCbCr,
|
|
}
|
|
|
|
export interface EncodeOptions {
|
|
quality: number;
|
|
baseline: boolean;
|
|
arithmetic: boolean;
|
|
progressive: boolean;
|
|
optimize_coding: boolean;
|
|
smoothing: number;
|
|
color_space: MozJpegColorSpace;
|
|
quant_table: number;
|
|
trellis_multipass: boolean;
|
|
trellis_opt_zero: boolean;
|
|
trellis_opt_table: boolean;
|
|
trellis_loops: number;
|
|
auto_subsample: boolean;
|
|
chroma_subsample: number;
|
|
separate_chroma_quality: boolean;
|
|
chroma_quality: number;
|
|
}
|
|
|
|
export interface EncoderState { type: typeof type; options: EncodeOptions; }
|
|
|
|
export const type = 'mozjpeg';
|
|
export const label = 'MozJPEG';
|
|
export const mimeType = 'image/jpeg';
|
|
export const extension = 'jpg';
|
|
export const defaultOptions: EncodeOptions = {
|
|
quality: 75,
|
|
baseline: false,
|
|
arithmetic: false,
|
|
progressive: true,
|
|
optimize_coding: true,
|
|
smoothing: 0,
|
|
color_space: MozJpegColorSpace.YCbCr,
|
|
quant_table: 3,
|
|
trellis_multipass: false,
|
|
trellis_opt_zero: false,
|
|
trellis_opt_table: false,
|
|
trellis_loops: 1,
|
|
auto_subsample: true,
|
|
chroma_subsample: 2,
|
|
separate_chroma_quality: false,
|
|
chroma_quality: 75,
|
|
};
|