diff --git a/codecs/avif/enc/avif_enc.d.ts b/codecs/avif/enc/avif_enc.d.ts index 2f1436fe..e32d84b9 100644 --- a/codecs/avif/enc/avif_enc.d.ts +++ b/codecs/avif/enc/avif_enc.d.ts @@ -1,4 +1,13 @@ -import { EncodeOptions } from 'image-worker/avifEncode'; +export interface EncodeOptions { + minQuantizer: number; + maxQuantizer: number; + minQuantizerAlpha: number; + maxQuantizerAlpha: number; + tileRowsLog2: number; + tileColsLog2: number; + speed: number; + subsample: number; +} export interface AVIFModule extends EmscriptenWasm.Module { encode( diff --git a/codecs/mozjpeg_enc/mozjpeg_enc.d.ts b/codecs/mozjpeg_enc/mozjpeg_enc.d.ts index b7669b14..3c730ae3 100644 --- a/codecs/mozjpeg_enc/mozjpeg_enc.d.ts +++ b/codecs/mozjpeg_enc/mozjpeg_enc.d.ts @@ -1,4 +1,27 @@ -import { EncodeOptions } from 'image-worker/mozjpegEncode'; +export const 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 MozJPEGModule extends EmscriptenWasm.Module { encode( diff --git a/codecs/webp/enc/webp_enc.d.ts b/codecs/webp/enc/webp_enc.d.ts index 1d5ad92c..28019151 100644 --- a/codecs/webp/enc/webp_enc.d.ts +++ b/codecs/webp/enc/webp_enc.d.ts @@ -1,4 +1,32 @@ -import { EncodeOptions } from 'image-worker/webpEncode'; +export interface EncodeOptions { + quality: number; + target_size: number; + target_PSNR: number; + method: number; + sns_strength: number; + filter_strength: number; + filter_sharpness: number; + filter_type: number; + partitions: number; + segments: number; + pass: number; + show_compressed: number; + preprocessing: number; + autofilter: number; + partition_limit: number; + alpha_compression: number; + alpha_filtering: number; + alpha_quality: number; + lossless: number; + exact: number; + image_hint: number; + emulate_jpeg_size: number; + thread_level: number; + low_memory: number; + near_lossless: number; + use_delta_palette: number; + use_sharp_yuv: number; +} export interface WebPModule extends EmscriptenWasm.Module { encode( diff --git a/src/image-worker/avifEncode/index.ts b/src/image-worker/avifEncode/index.ts index 66c707a1..143bbb94 100644 --- a/src/image-worker/avifEncode/index.ts +++ b/src/image-worker/avifEncode/index.ts @@ -10,21 +10,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import avifEncoder, { AVIFModule } from 'codecs/avif/enc/avif_enc'; +import avifEncoder, { + AVIFModule, + EncodeOptions, +} from 'codecs/avif/enc/avif_enc'; import wasmUrl from 'url:codecs/avif/enc/avif_enc.wasm'; import { initEmscriptenModule } from '../util'; -export interface EncodeOptions { - minQuantizer: number; - maxQuantizer: number; - minQuantizerAlpha: number; - maxQuantizerAlpha: number; - tileRowsLog2: number; - tileColsLog2: number; - speed: number; - subsample: number; -} - let emscriptenModule: Promise; export default async function encode( diff --git a/src/image-worker/mozjpegEncode/index.ts b/src/image-worker/mozjpegEncode/index.ts index 953f76ee..cd593de6 100644 --- a/src/image-worker/mozjpegEncode/index.ts +++ b/src/image-worker/mozjpegEncode/index.ts @@ -10,35 +10,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import mozjpeg_enc, { MozJPEGModule } from 'codecs/mozjpeg_enc/mozjpeg_enc'; +import mozjpeg_enc, { + MozJPEGModule, + EncodeOptions, +} from 'codecs/mozjpeg_enc/mozjpeg_enc'; import wasmUrl from 'url:codecs/mozjpeg_enc/mozjpeg_enc.wasm'; import { initEmscriptenModule } from '../util'; -export const 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; -} - let emscriptenModule: Promise; export default async function encode( diff --git a/src/image-worker/quantize/index.ts b/src/image-worker/quantize/index.ts index 2418ace7..6782aa3e 100644 --- a/src/image-worker/quantize/index.ts +++ b/src/image-worker/quantize/index.ts @@ -20,12 +20,6 @@ export interface QuantizeOptions { dither: number; } -export const defaultOptions: QuantizeOptions = { - zx: 0, - maxNumColors: 256, - dither: 1.0, -}; - let emscriptenModule: Promise; export default async function process( diff --git a/src/image-worker/webpEncode/index.ts b/src/image-worker/webpEncode/index.ts index 3406b2fd..1fe35e87 100644 --- a/src/image-worker/webpEncode/index.ts +++ b/src/image-worker/webpEncode/index.ts @@ -10,40 +10,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import webpEncoder, { WebPModule } from 'codecs/webp/enc/webp_enc'; +import webpEncoder, { + WebPModule, + EncodeOptions, +} from 'codecs/webp/enc/webp_enc'; import wasmUrl from 'url:codecs/webp/enc/webp_enc.wasm'; import { initEmscriptenModule } from '../util'; -export interface EncodeOptions { - quality: number; - target_size: number; - target_PSNR: number; - method: number; - sns_strength: number; - filter_strength: number; - filter_sharpness: number; - filter_type: number; - partitions: number; - segments: number; - pass: number; - show_compressed: number; - preprocessing: number; - autofilter: number; - partition_limit: number; - alpha_compression: number; - alpha_filtering: number; - alpha_quality: number; - lossless: number; - exact: number; - image_hint: number; - emulate_jpeg_size: number; - thread_level: number; - low_memory: number; - near_lossless: number; - use_delta_palette: number; - use_sharp_yuv: number; -} - let emscriptenModule: Promise; export default async function encode(