About
Generate an image thumbnail.
Credits
The "image-thumbnail" functionality in this project is based on the work from Onildo Aguiar available at image-thumbnail repository. We thank Onildo Aguiar for their original work on the image thumbnail generation functionality.
Purpose?
This module will generate an image thumbnail.
By default the thumbnail's file format will be the same as the source file. You can use the jpegOptions option to force output to jpeg.
Usage
imageThumbnail(source, options)
Async/Await (Typescript & ES7)
const imageThumbnail = require('image-thumbnail');
try {
const thumbnail = await imageThumbnail('resources/images/dog.jpg');
console.log(thumbnail);
} catch (err) {
console.error(err);
}
Using promises (node 8.x)
const imageThumbnail = require('image-thumbnail');
imageThumbnail('resources/images/dog.jpg')
.then(thumbnail => { console.log(thumbnail) })
.catch(err => console.error(err));
Examples
From Uri
const imageThumbnail = require('image-thumbnail');
try {
const thumbnail = await imageThumbnail({ uri: 'https://images/dogs.jpg' });
console.log(thumbnail);
} catch (err) {
console.error(err);
}
From Base64
const imageThumbnail = require('image-thumbnail');
try {
const thumbnail = await imageThumbnail('/9j/4AAQSkZJRgABAQEBLAEsAAD/4QEERXhpZgAA==');
console.log(thumbnail);
} catch (err) {
console.error(err);
}
From Path
const imageThumbnail = require('image-thumbnail');
try {
const thumbnail = await imageThumbnail('resources/images/dog.jpg');
console.log(thumbnail);
} catch (err) {
console.error(err);
}
From Buffer
const imageThumbnail = require('image-thumbnail');
try {
const imageBuffer = fs.readFileSync('resources/images/dog.jpg');
const thumbnail = await imageThumbnail(imageBuffer);
console.log(thumbnail);
} catch (err) {
console.error(err);
}
From Stream
const imageThumbnail = require('image-thumbnail');
const fs = require('fs');
try {
const stream = fs.createReadStream('resources/images/dog.jpg')
const thumbnail = await imageThumbnail(stream);
console.log(thumbnail);
} catch (err) {
console.error(err);
}
Options
-
options:
- percentage [0-100] - image thumbnail percentage. Default = 10
- width [number] - image thumbnail width.
- height [number] - image thumbnail height.
- responseType ['buffer' || 'base64'] - response output type. Default = 'buffer'
- jpegOptions [0-100] - Example: { force:true, quality:100 }
- fit [string] - method by which the image should fit the width/height. Default = contain (details)
- failOnError [boolean] - Set to false to avoid read problems for images from some phones (i.e Samsung) in the sharp lib. Default = true (details)
- withMetaData [boolean] - Keep metadata in the thumbnail (will increase file size)
Examples
const imageThumbnail = require('image-thumbnail');
let options = { percentage: 25, responseType: 'base64' }
try {
const thumbnail = await imageThumbnail('resources/images/dog.jpg', options);
console.log(thumbnail);
} catch (err) {
console.error(err);
}
const imageThumbnail = require('image-thumbnail');
let options = { width: 100, height: 100, responseType: 'base64' }
try {
const thumbnail = await imageThumbnail('resources/images/dog.jpg', options);
console.log(thumbnail);
} catch (err) {
console.error(err);
}
const imageThumbnail = require('image-thumbnail');
let options = { width: 100, height: 100, responseType: 'base64', jpegOptions: { force:true, quality:90 } }
try {
const thumbnail = await imageThumbnail('resources/images/dog.jpg', options);
console.log(thumbnail);
} catch (err) {
console.error(err);
}
License
This project is licensed under the MIT License - see the LICENSE.md file for details.