thumbo-core
Built with Rust
π
About
thumbo-core
is a thubnail library for browsers and NodeJs, built with Rust and WebAssembly in other to achieve closer to native speed!
It supports thumbnail generation for Png
, Jpeg
, Gif
, Ico
, Webp
and Svg
! Webp
support is a work in progress.
π£ If you plan to usethumbo-core
, it should be used with a Webworker so you don't block the main thread! If you don't want to go through this hassle, use thumbo, it provides a worker pool to handle thumbnail generation usingthumbo-core
out of the box.
π΄
Usage
π§ͺ
Sample usage
import * as thumbo from "thumbo-core";
const img = await fetch("/path/to/img.png");
const thumbnail = thumbo.thumbnail(
new Uint8Array(await img.arrayBuffer()),
thumbo.ImageFormat.Png,
20,
20
);
const thumbnail_blob = new Blob([thumbnail], { type: "image/png" });
const url = URL.createObjectURL(thumbnail_blob);
document.getElementById("img").src = url;
βοΈ
API Reference
thumbo.ImageFormat
An enum of image formats supported by thumbo-core.
thumbo.thumbnail(image_buffer: Uint8Array, format: thumbo.ImageFormat, width, height)
Creates a thumbnail from the provided image buffer.
π·π½ Development
π οΈ
Build with wasm-pack build
wasm-pack build
π¬
Test in Headless Browsers with wasm-pack test
wasm-pack test --headless --chrome
π
Publish to NPM with wasm-pack publish
wasm-pack publish