thumbo-core
v1.0.10
Published
Dead fast thumbnail library for browser and NodeJs
Downloads
142
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-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