import { ImageTracer } from "@image-tracer-ts/core"; import { Options } from "@image-tracer-ts/core"; import { ImageDrawer } from "@image-tracer-ts/core"; import { ImageLoader } from "./image-loader"; export class ImageTracerBrowser extends ImageTracer { public static async fromUrl( url: string, options: Partial, drawer: ImageDrawer | null = null ): Promise { const imageData = await ImageLoader.loadUrl(url); return this.fromImageData(imageData, options, drawer); } public static async fromBuffer( buffer: ArrayBuffer, options: Partial, drawer: ImageDrawer | null = null ): Promise { const imageData = await ImageLoader.loadImageDataFromBuffer(buffer); return this.fromImageData(imageData, options, drawer); } public static async fromFile( file: File, options: Partial, drawer: ImageDrawer | null = null ): Promise { const imageData = await ImageLoader.loadImageDataFromFile(file); return this.fromImageData(imageData, options, drawer); } public static async fromImageData( imageData: ImageData, options: Partial, drawer: ImageDrawer | null = null ): Promise { const tracer = new ImageTracerBrowser(options); return drawer ? tracer.traceImage(imageData, drawer) : tracer.traceImageToSvg(imageData); } }