nodejs-image-squeezer
TypeScript icon, indicating that this package has built-in type declarations

1.2.16 • Public • Published

NodeJS Image Squeezer

A simple npm package for image compression powered by FFMPEG.

Build Status Coverage Status NPM version

Requirement(s)

  • Node.js 8.x.x up to latest.

  • Operating System: Windows or Linux.

  • FFMPEG Binaries or Executable File:

  • Other Feature(s):

    • ImageMagick:

      • To use the "ProressiveJPEG" class this require the ImageMagick package.

      • To get the latest version ImageMagick Download Link

Install

NPM

  • Use command npm install nodejs-image-squeezer --save.

Github Package

  • Use command npm install @lorddashme/nodejs-image-squeezer.

Usage

FFMPEG

  • Basic implementation using Vanilla/Common JavaScript:
 
// Require the main class of the NodeJS Image Squeezer.
const ImageSqueezer = require('nodejs-image-squeezer');
 
// Initialize the main class.
const imgSqueezer = new ImageSqueezer.FFMPEGComppresion();
 
// Load the necessary requirements and validate
// if the package fit for the current environment.
imgSqueezer.load();
 
// Set the default binaries file.
imgSqueezer.setBin('/path/to/ffmpeg');
 
// Provide the source file path of the desire image
// that will be compress later on.
imgSqueezer.setSourceFilePath('/path/source-filename');
 
// Provide the output file path of the compressed image.
imgSqueezer.setOutputFilePath('/path/output-filename');
 
// (Optional) This will allow output file path as empty
// and will use the source file path as the output file path.
imgSqueezer.allowEmptyOutputFilePath();
 
// (Optional) To adjust the compression level.
// COMPRESSION_LEVEL_LOW = 30%
// COMPRESSION_LEVEL_NORMAL = 70%
// (Default) COMPRESSION_LEVEL_HIGH = 100%
imgSqueezer.setCompressionLevel(ImageSqueezer.FFMPEGComppresion.COMPRESSION_LEVEL_NORMAL);
 
// Prepare all necessary commands before executing
// the compression process.
imgSqueezer.build();
 
// Execute the image compression.
// Please take note this is an async method.
// return a Promise<boolean>.
imgSqueezer.compress();
 
  • Below are the simple implementation using TypeScript:
 
import ImageSqueezer from 'nodejs-image-squeezer';
 
const imgSqueezer = new ImageSqueezer.FFMPEGComppresion();
 
imgSqueezer.load();
 
imgSqueezer.setBin('/path/to/ffmpeg');
imgSqueezer.setSourceFilePath('/path/source-filename');
imgSqueezer.setOutputFilePath('/path/output-filename');
imgSqueezer.allowEmptyOutputFilePath();
imgSqueezer.setCompressionLevel(ImageSqueezer.FFMPEGComppresion.COMPRESSION_LEVEL_NORMAL);
imgSqueezer.build();
imgSqueezer.compress();
 

JPEG Progressive

  • Note: This function will only work for JPEG format.

  • Basic implementation without using superset libraries for Vanilla/Common JavaScript:

 
const ImageSqueezer = require('nodejs-image-squeezer');
 
const imgSqueezer = new ImageSqueezer.ProgressiveJPEG();
 
imgSqueezer.load();
imgSqueezer.setBin('/path/to/convert');
imgSqueezer.setSourceFilePath('/path/source-filename');
imgSqueezer.setOutputFilePath('/path/output-filename');
 
// (Optional) This will allow output file path as empty
// and will use the source file path as the output file path.
imgSqueezer.allowEmptyOutputFilePath();
 
imgSqueezer.build();
 
// Execute the jpeg progressive optimization.
// Please take note this is an async method.
// return a Promise<boolean>.
imgSqueezer.compress();
 
  • Below are the simple implementation using TypeScript:
 
import ImageSqueezer from 'nodejs-image-squeezer';
 
const imgSqueezer = new ImageSqueezer.ProgressiveJPEG();
 
imgSqueezer.load();
imgSqueezer.setBin('/path/to/convert');
imgSqueezer.setSourceFilePath('/path/source-filename');
imgSqueezer.setOutputFilePath('/path/output-filename');
imgSqueezer.allowEmptyOutputFilePath();
imgSqueezer.build();
imgSqueezer.compress();
 

License

This package is open-sourced software licensed under the MIT license.

Package Sidebar

Install

npm i nodejs-image-squeezer

Weekly Downloads

43

Version

1.2.16

License

MIT

Unpacked Size

32.1 MB

Total Files

54

Last publish

Collaborators

  • lorddashme