remige
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

Description

Remige is a forked version of libSquoosh, integrating Squoosh's image codecs directly into your JavaScript applications. This fork ensures continued support and enhancements, compatible with the latest Node.js versions for optimal performance in modern development environments.

Compatibility

Remige supports the latest Node.js versions, ensuring compatibility and optimal performance in modern development environments.

Why Forked?

With ongoing updates and improvements, Remige serves developers seeking robust image compression solutions within their JavaScript projects. It maintains functionality and reliability for current development practices.

Installation

Install Remige in your local project with:

$ npm install remige

To use Remige, import ImagePool and set up your image processing pipeline:

import { ImagePool } from "remige";
import { cpus } from "os";

const imagePool = new ImagePool(cpus().length);

Ensure to only create one ImagePool instance to avoid memory issues during parallel image processing.

Ingesting Images

Ingest images using imagePool.ingestImage(), accepting ArrayBuffer from fs.readFile() or fetch().

import fs from "fs/promises";

const file = await fs.readFile("./path/to/image.png");
const image = imagePool.ingestImage(file);

Preprocessing and Encoding Images

Preprocess and encode images to various formats:

const preprocessOptions = {
  resize: {
    width: 100,
    height: 50,
  },
};

await image.preprocess(preprocessOptions);

const encodeOptions = {
  mozjpeg: {}, // default settings
  jxl: {
    quality: 90,
  },
};

const result = await image.encode(encodeOptions);

Closing ImagePool

Close the ImagePool pipeline to prevent ingesting and encoding new images:

await imagePool.close();

Writing Encoded Images to File System

Write encoded images to the file system:

const rawEncodedImage = image.encodedWith.mozjpeg.binary;

await fs.writeFile("/path/to/new/image.jpg", rawEncodedImage);

Extracting Image Information

Extract decoded and encoded image information:

console.log(await image.decoded);
console.log(image.encodedWith.jxl);

Auto Optimizer

Remige includes an experimental auto optimizer:

const encodeOptions = {
  mozjpeg: "auto",
};

Package Sidebar

Install

npm i remige

Weekly Downloads

7

Version

0.1.1

License

Apache-2.0

Unpacked Size

12.6 MB

Total Files

31

Last publish

Collaborators

  • darsan.in