mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-16 10:39:53 +00:00
Fixups
This commit is contained in:
@@ -1,21 +1,26 @@
|
|||||||
import mainUrl from 'file-loader!../../../codecs/avif/enc/avif_enc.js';
|
import mainUrl from 'file-loader!../../../codecs/avif/enc/avif_enc.js';
|
||||||
import avif_enc, { AVIFModule } from '../../../codecs/avif/enc/avif_enc.js';
|
import { AVIFModule } from '../../../codecs/avif/enc/avif_enc.js';
|
||||||
import wasmUrl from '../../../codecs/avif/enc/avif_enc.wasm';
|
import wasmUrl from '../../../codecs/avif/enc/avif_enc.wasm';
|
||||||
import workerUrl from 'file-loader!../../../codecs/avif/enc/avif_enc.worker.js';
|
import workerUrl from 'file-loader!../../../codecs/avif/enc/avif_enc.worker.js';
|
||||||
import { EncodeOptions } from './encoder-meta';
|
import { EncodeOptions } from './encoder-meta';
|
||||||
import { initEmscriptenModule } from '../util';
|
import { initEmscriptenModule } from '../util';
|
||||||
|
|
||||||
|
declare const avif_enc: typeof import('../../../codecs/avif/enc/avif_enc.js').default;
|
||||||
|
|
||||||
let emscriptenModule: Promise<AVIFModule>;
|
let emscriptenModule: Promise<AVIFModule>;
|
||||||
|
|
||||||
|
async function init() {
|
||||||
|
importScripts(mainUrl as unknown as string);
|
||||||
|
return initEmscriptenModule<AVIFModule>(
|
||||||
|
avif_enc,
|
||||||
|
wasmUrl,
|
||||||
|
workerUrl,
|
||||||
|
mainUrl as unknown as string,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export async function encode(data: ImageData, options: EncodeOptions): Promise<ArrayBuffer> {
|
export async function encode(data: ImageData, options: EncodeOptions): Promise<ArrayBuffer> {
|
||||||
if (!emscriptenModule) {
|
if (!emscriptenModule) emscriptenModule = init();
|
||||||
emscriptenModule = initEmscriptenModule(
|
|
||||||
avif_enc,
|
|
||||||
wasmUrl,
|
|
||||||
workerUrl,
|
|
||||||
mainUrl as unknown as string,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const module = await emscriptenModule;
|
const module = await emscriptenModule;
|
||||||
const result = module.encode(data.data, data.width, data.height, options);
|
const result = module.encode(data.data, data.width, data.height, options);
|
||||||
|
|||||||
Reference in New Issue
Block a user