thumbo-core
v1.0.10 thumbnail image resize rust wasm
thumbo-core
๐ฑ 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