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.

    Install

    npm i nodejs-image-squeezer

    DownloadsWeekly Downloads

    3

    Version

    1.2.16

    License

    MIT

    Unpacked Size

    32.1 MB

    Total Files

    54

    Last publish

    Collaborators

    • lorddashme