resim
v1.0.0
Published
Fast image manipulation library for JavaScript world
Readme
Rust package
This crate contains the validated pixel-processing core and the wasm bindings exposed to browser consumers.
Current transforms
- grayscale
- invert
- blur
- brightness
- contrast
- threshold
- sharpen
- saturation
- sepia
- opacity
- gamma
- resize
Core API
Important Rust-side entry points:
apply_transformapply_transform_sequencevalidate_imageTransformResimError
The core now rejects malformed buffers, zero dimensions, and out-of-range parameter values instead of silently clamping every invalid call.
Browser API
The wasm package exposes:
getTransformCatalog()readImageDataFromCanvas()andwriteImageDataToCanvas()- backward-compatible aliases
readCanvasImageData()andwriteCanvasImageData() - individual
*ImageDatatransform functions resizeImageData()applyCanvasTransform()and the older aliasapplyTransformToCanvas()
Local workflow
cargo test
wasm-pack build . --target web --out-dir pkg --release
wasm-pack test --headless --chromeExample
import init, {
contrastImageData,
readImageDataFromCanvas,
writeImageDataToCanvas,
} from "@sinansonmez/resim";
await init();
const imageData = readImageDataFromCanvas(canvas, ctx);
const next = contrastImageData(imageData, 25);
writeImageDataToCanvas(ctx, next);