High performance, secure and easy to use image proxy based on sharp and libvips.
You can use ipx command to start server using:
$ npx ipxThe default server directory is the current working directory.
You can use IPX as a Connect/Express middleware or directly use ipx api.
import { createIPX, createIPXMiddleware } from "ipx";
const ipx = createIPX(/* options */);
const app = express();
app.use("/image", createIPXMiddleware(ipx));Get original image:
/_/static/buffalo.png
Change format to webp and keep other things same as source:
/f_webp/static/buffalo.png
Keep original format (png) and set width to 200:
/w_200/static/buffalo.png
Resize to 200x200px using embed method and change format to webp:
/embed,f_webp,s_200x200/static/buffalo.png
| Property | Docs | Example | Comments | 
|---|---|---|---|
| width / w | Docs | /width_200/buffalo.png | 
|
| height / h | Docs | /height_200/buffalo.png | 
|
| resize / s | Docs | /s_200x200/buffalo.png | 
|
| fit | Docs | /s_200x200,fit_outside/buffalo.png | 
Sets fit option for resize. | 
| position / pos | Docs | /s_200x200,pos_top/buffalo.png | 
Sets position option for resize. | 
| trim | Docs | /trim_100/buffalo.png | 
|
| extend | Docs | /extend_{top}_{right}_{bottom}_{left}/buffalo.png | 
Extend / pad / extrude one or more edges of the image with either the provided background colour or pixels derived from the image. | 
| extract | Docs | /extract_{left}_{top}_{width}_{height}/buffalo.png | 
Extract/crop a region of the image. | 
| format / f | Docs | /format_webp/buffalo.png | 
Supported format: jpg, jpeg, png, webp, avif, gif, heif, tiff and auto (experimental only with middleware) | 
| quality / q | _ | /quality_50/buffalo.png | 
Accepted values: 0 to 100 | 
| rotate | Docs | /rotate_45/buffalo.png | 
|
| enlarge | _ | /enlarge,s_2000x2000/buffalo.png | 
Allow the image to be upscaled. By default the returned image will never be larger than the source in any dimension, while preserving the requested aspect ratio. | 
| flip | Docs | /flip/buffalo.png | 
|
| flop | Docs | /flop/buffalo.png | 
|
| sharpen | Docs | /sharpen_30/buffalo.png | 
|
| median | Docs | /median_10/buffalo.png | 
|
| blur | Docs | /blur_5/buffalo.png | 
|
| gamma | Docs | /gamma_3/buffalo.png | 
|
| negate | Docs | /negate/buffalo.png | 
|
| normalize | Docs | /normalize/buffalo.png | 
|
| threshold | Docs | /threshold_10/buffalo.png | 
|
| tint | Docs | /tint_1098123/buffalo.png | 
|
| grayscale | Docs | /grayscale/buffalo.png | 
|
| animated | - | /animated/buffalo.gif | 
Experimental | 
Config can be customized using IPX_* environment variables.
- 
IPX_DIR- Default: 
.(current working directory) 
 - Default: 
 - 
IPX_DOMAINS- Default: 
[] 
 - Default: 
 - 
IPX_MAX_AGE- Default: 
300 
 - Default: 
 - 
IPX_ALIAS- Default: 
{} 
 - Default: 
 - 
IPX_FETCH_OPTIONS- Default: 
{} 
 - Default: