https://github.com/timbokz/fs-thumbnail
Node.js library that generates thumbnails for files.
https://github.com/timbokz/fs-thumbnail
Last synced: over 1 year ago
JSON representation
Node.js library that generates thumbnails for files.
- Host: GitHub
- URL: https://github.com/timbokz/fs-thumbnail
- Owner: TimboKZ
- License: lgpl-3.0
- Created: 2018-12-01T20:28:03.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T17:45:10.000Z (over 3 years ago)
- Last Synced: 2025-03-23T15:51:32.663Z (over 1 year ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/fs-thumbnail
- Size: 263 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fs-thumbnail
Node.js library that generates thumbnails for files in the file system.
# Overview
`fs-thumbnail` was designed for [Ogma](https://github.com/TimboKZ/Ogma). It generates thumbnails based on file system
paths of files. It tries several different libraries and uses the best match to generate the thumbnail. Libraries used
for thumbnail generation are listed below. The ones labelled with *peer dependency* must be installed separately, either
using npm or your OS-specific package manager.
* **[sharp](https://github.com/lovell/sharp)** (peer dependency: npm). Used for JPEG, PNG, WebP, TIFF, GIF and SVG
images.
* **[ffmpeg](https://ffmpeg.org/)** (peer dependency: OS-specific). Used to generate video thumbnails.
> If you want to request support for a specific file type, please
> [create an issue](https://github.com/TimboKZ/fs-thumbnail/issues).
# Installing
Install the main package:
```bash
npm install fs-thumbnail
```
Install some subset of peer dependencies that is relevant to your project:
```bash
# On all machines
npm install sharp@0
# Make `ffmpeg` command available in your PATH.
# E.g. on Debian and Ubuntu you can run:
apt install ffmpeg
```
Now you can use the library:
```js
const ThumbnailGenerator = require('fs-thumbnail');
const thumbGen = new ThumbnailGenerator({
verbose: true, // Whether to print out warning/errors
size: [500, 300], // Default size, either a single number of an array of two numbers - [width, height].
quality: 70, // Default quality, between 1 and 100
});
thumbGen.getThumbnail({
path: '/path/to/my/image.png',
output: '/thumbnail/folder/thumbnail.jpg',
size: 300, // You can override the default size per thumbnail
quality: 70, // You can override the default quality per thumbnail
})
.then(thumbnailPath => {
if (!thumbnailPath) console.log('Could not generate the thumbnail!');
else console.log(`Thumbnail generated! Find it here: ${thumbnailPath}`);
});
```