thumbo-core
v1.0.10
Published
Dead fast thumbnail library for browser and NodeJs
Readme
😱 Dead fast thumbnail library for browser and NodeJs
Built with Rust 🦀 & WebAssembly 🕸
📖 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 use
thumbo-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-coreout 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