fast-image-server
v1.0.17
Published
Fast Image Server is an npm package that provides image serving functionality with a focus on converting images to webp format, generating thumbnails, and optimizing image delivery. It utilizes Node.js, Express.js, and includes built-in image caching capa
Downloads
6
Readme
Fast Image Server
Fast Image Server is an npm package that provides image serving functionality with a focus on converting images to webp format, generating thumbnails, and optimizing image delivery. It utilizes Node.js, Express.js, and includes built-in image caching capabilities.
Features
- Converts images to webp format
- Generates thumbnails in webp format
- Generates low quality preview images in webp format
- Built-in image cache based on Node.js
- Uses Express.js for server functionality
- Automatically creates necessary directories if they do not exist
Usage
Installation
Install the package via npm:
npm install image-server
Starting the Server
- Import the
startServer
function from the package:
const { startServer } = require('fast-image-server')
- Call the startServer function to start the Fast Image Server:
startServer({
sourceDir: "./high-quality-source-images",
optimizedDir: "./optimized-images",
thumbsDir: "./optimized-thumb-images",
previewDir: "./low-quality-preview-images"
}, 4000)
The second argument is the port which if not passed, will default to port 80
Routes
The server listens to requests at the path /images/:imageNameWithExtension
. For example:
GET /images/a.png
- If
a.png
does not exist, returns 404 - If
a.png
exists, returns its corresponding webp format
- If
GET /images/a.webp
- Returns the webp corresponding to
a.png
- If webp does not exist, checks if
a.png
ora.jpg
exists and then creates webp from that
- Returns the webp corresponding to
GET /images/a.thumb.webp
- Returns the thumbnail for
a.png
- Same rules apply for thumbnails
- Returns the thumbnail for
GET /images/a.preview.webp
- Returns the low quality preview for
a.png
- Same rules apply for preview
- Returns the low quality preview for
POST /images/generate-versions/a.png
- Generates preview, thumb and optimized versions of
a.png
- If a.png is non existent, error is triggered.
- Returns JSON response with success field and error field
- Generates preview, thumb and optimized versions of
Notes
- Once served, images will be stored in cache for faster delivery in subsequent requests.
- Fast Image Server is particularly useful for converting images to webp format and improving image delivery speed in real production uses. It eliminates the need for image conversion in the original application, simplifying the development process.
License
This project is licensed under the MIT License - see the LICENSE file for details.