Integrate encoder

This commit is contained in:
Surma
2020-02-06 15:58:38 -08:00
parent c659018550
commit 30bafab263
8 changed files with 51 additions and 389 deletions

View File

@@ -1,15 +1,15 @@
import webp_enc, { WebPModule } from '../../../codecs/webp_enc/webp_enc';
import wasmUrl from '../../../codecs/webp_enc/webp_enc.wasm';
import jxl_enc, { JXLModule } from '../../../codecs/jxl_enc/jxl_enc';
import wasmUrl from '../../../codecs/jxl_enc/jxl_enc.wasm';
import { EncodeOptions } from './encoder-meta';
import { initEmscriptenModule } from '../util';
let emscriptenModule: Promise<WebPModule>;
let emscriptenModule: Promise<JXLModule>;
export async function encode(data: ImageData, options: EncodeOptions): Promise<ArrayBuffer> {
if (!emscriptenModule) emscriptenModule = initEmscriptenModule(webp_enc, wasmUrl);
if (!emscriptenModule) emscriptenModule = initEmscriptenModule(jxl_enc, wasmUrl);
const module = await emscriptenModule;
const resultView = module.encode(data.data, data.width, data.height, options);
const resultView = module.encode(data.data, data.width, data.height);
const result = new Uint8Array(resultView);
module.free_result();