images-folder-optimizer v0.0.37
images-folder-optimizer
A high performance package that uses sharp.js to recursively optimize, transform and convert images from a folder to smaller, web-friendly JPEG, PNG, WebP, GIF and AVIF images. It is also possible to add watermark to the output images controlling opacity and positioning.
FEATURES
- PROCCESS ALL IMAGE FILES IN A FOLDER AT ONCE
- SIGNIFICANT REDUCTION IN IMAGE SIZE
- SCAN FOR IMAGE FILES RECURSIVELY ON ALL SUBFOLDERS
- CONVERSION BETWEEN IMAGE FORMATS, CHOOSING BOTH INPUT AND OUTPUT FORMATS
- IMAGE RESIZING
- IMAGE TRANSFORMATIONS (ONLY BLUR FOR NOW)
- POSSIBILITY TO OVERLAP A WATERMARK IMAGE CONTROLLING ITS OPACITY
- FULL TYPESCRIPT SUPPORT
- FULL CONTROL FOR SHARP.JS PARAMETERS
HOW TO USE IN YOUR PROJECT
INSTALL THE PACKAGE:
npm install -D images-folder-optimizer
CREATE A JAVASCRIPT (OR TYPESCRIPT) FILE, AS
example.js
:import { functionOptimizeImages } from 'images-folder-optimizer'; functionOptimizeImages({ stringOriginFolder: 'static/images/originals', stringDestinationFolder: 'static/images/optimized', arrayOriginFormats: ['jpg', 'png'], arrayDestinationFormats: ['webp', 'avif'], }).then((results) => { console.table(results); });
RUN THE FILE:
node example.js
CHECK THE NEW IMAGES IN
static/images/optimized
.
BUILT-IN EXAMPLES
YOU CAN FIND BUILT-IN EXAMPLES IN src/examples/
[LINK]. LET'S TRY ONE OF THEM:
npx tsc
node dist/examples/exampleFormatConversion.js
PARAMETERS AND TYPING
- PARAMETERS FOR
functionOptimizeImages
:
PARAMETER | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
---|---|---|---|---|
stringOriginFolder | THE FOLDER WITH THE ORIGINAL IMAGES | string | YES | - |
stringDestinationFolder | THE FOLDER WHERE THE OPTIMIZED IMAGES ARE GOING TO BE SAVED | string | YES | - |
arrayOriginFormats | FORMATS OF THE ORIGINAL IMAGES | ARRAY WITH ELEMENTS BEEING 'webp' OR 'avif' OR 'png' OR 'jpg' OR 'tiff' OR 'gif' | YES | - |
arrayDestinationFormats | FORMATS FOR THE NEW IMAGES | ARRAY WITH ELEMENTS BEEING 'webp' OR 'avif' OR 'png' OR 'jpg' OR 'tiff' OR 'gif' OR 'svg' | YES | - |
stringFileNameSuffix | SUFIX FOR THE NEW FILE NAMES. EVERY ORIGINAL FILE NAME WITH THIS SUFIX IS GOING TO BE IGNORED | NO | - | |
objectResizeOptions | SHARP.JS OPTIONS FOR IMAGE RESIZING | CHECK IT HERE | NO | - |
objectPngOptions | SHARP.JS OPTIONS FOR PNG TRANSFORMATIONS | CHECK IT HERE | NO | - |
objectJpegOptions | SHARP.JS OPTIONS FOR JPG TRANSFORMATIONS | CHECK IT HERE | NO | - |
objectWebpOptions | SHARP.JS OPTIONS FOR WEBP TRANSFORMATIONS | CHECK IT HERE | NO | - |
objectAvifOptions | SHARP.JS OPTIONS FOR AVIF TRANSFORMATIONS | CHECK IT HERE | NO | - |
objectAvifOptions | SHARP.JS OPTIONS FOR AVIF TRANSFORMATIONS | CHECK IT HERE | NO | - |
objectTiffOptions | SHARP.JS OPTIONS FOR TIFF TRANSFORMATIONS | CHECK IT HERE | NO | - |
objectGifOptions | SHARP.JS OPTIONS FOR GIF TRANSFORMATIONS | CHECK IT HERE | NO | - |
objectBlurOptions | SHARP.JS OPTIONS FOR BLUR TRANSFORMATIONS | CHECK IT HERE | NO | - |
objectWatermarkOptions | OBJECT WITH OPTIONS FOR WATERMARK INSERTION | typeWatermarkOptions DESCRIBED BELLOW | NO | - |
- typeWatermarkOptions TYPE:
KEY | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
---|---|---|---|---|
stringWatermarkFile | PATH OF THE IMAGE TO USE AS WATERMARK | string | YES | - |
numberOpacity | WATERMARK OPACITY | number BETWEEN 0 AND 1 | YES | - |
objectResizeOptions | SHARP.JS OPTIONS FOR RESIZING THE WATERMARK IMAGE | CHECK IT HERE | NO | - |
stringGravity | WATERMARK POSITION | 'centre' OR 'northwest' OR 'northeast' OR 'southeast' OR 'southwest' | NO | centre |
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago