For GET requests, dynamically crops and resizes image using
ImageMagick convert
command.
And, serves the resized image.
The following crops 1:2 rectangle at center of some/image.jpg. And resizes the crop to 10x20:
GET /some/image.10x20.jpg
You can specify where to crop other than center. The following crops at the top (north).
GET /some/image.10x20n.jpg
You can specify crop size in percentage (defaults to 100%
):
GET /some/image.10x20n.70.jpg
would crop 1:2 rectangle that'll fit about 70% of original image.
Other parameters:
Parameter | Crops At | Example | Comment |
---|---|---|---|
Center | GET /some/image.10x20.jpg | Not specifying a parameter crops at center. | |
n | North | GET /a/b.100x400n.jpg | |
s | South | GET /a/b.100x400s.jpg | |
w | West | GET /a/b.100x400w.jpg | |
e | East | GET /a/b.100x400e.jpg | |
nw | NorthWest | GET /a/b.100x400nw.jpg | |
ne | NorthEast | GET /a/b.100x400ne.jpg | |
sw | SouthWest | GET /a/b.100x400sw.jpg | |
se | SouthEast | GET /a/b.100x400se.jpg | |
t | No Crop | GET /some/image.100x400t.jpg | Instead of cropping, some/image.jpg is resized to fit in 100x400 rectangle. |
- original is horizontal.
- Horizontal to square:
- Horizontal to vertical:
- Horizontal to horizontal:
Run
node src/main.js
Configure
cp src/settings.js src/settings.local.js
vim settings.local.js
Example settings.local.js
:
module.exports = {
port: 8081,
srcDir: '/var/www',
destDir: '/var/cache',
convertcmd: '/usr/local/bin/convert'
}