it

image-thumbnail

📦🚀 Package to generate an image thumbnail.

Showing:

Popularity

Downloads/wk

8.4K

GitHub Stars

59

Maintenance

Last Commit

24d ago

Contributors

10

Package

Dependencies

4

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

About

Generate an image thumbnail.

NPM

Purpose?

This module will generate an image thumbnail.

By default the thumbnail's file format will be the same than 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.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial