diff --git a/README.md b/README.md index d5f4cef..3daba1d 100644 --- a/README.md +++ b/README.md @@ -1,102 +1,287 @@ -## 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: - -```bash -$ npm install remige -``` - -To use Remige, import `ImagePool` and set up your image processing pipeline: - -```javascript -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()`. - -```javascript -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: - -```javascript -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: - -```javascript -await imagePool.close(); -``` - -## Writing Encoded Images to File System - -Write encoded images to the file system: - -```javascript -const rawEncodedImage = image.encodedWith.mozjpeg.binary; - -await fs.writeFile("/path/to/new/image.jpg", rawEncodedImage); -``` - -## Extracting Image Information - -Extract decoded and encoded image information: - -```javascript -console.log(await image.decoded); -console.log(image.encodedWith.jxl); -``` - -## Auto Optimizer - -Remige includes an experimental auto optimizer: - -```javascript -const encodeOptions = { - mozjpeg: "auto", -}; -``` +
[This is a placeholder paragraph. Here some introductory text or describe the content that will eventually go in this section. This text is meant to give a sense of how the final content will look in the design.] +
+ +### Supported Platforms + +[![Android](https://img.shields.io/badge/Android-3DDC84?style=for-the-badge&logo=android&logoColor=white)]() +[![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)]() +[![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white)]() +[![Node JS](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white)]() +[![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white)]() +[![Java](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=openjdk&logoColor=white)]() + +--- + +[uname-holder/reponame-holder] [npm-name-holder] [wf-holder] - for test&build + + + + + +--- + + + ++ + + + + + + +
+ +--- + + + +--- + ++ + + + + + + +
+ +--- + ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +--- + +#### Topics + +