https://github.com/garrows/IMMP
Image Manipulation Middleware Proxy
https://github.com/garrows/IMMP
Last synced: 4 days ago
JSON representation
Image Manipulation Middleware Proxy
- Host: GitHub
- URL: https://github.com/garrows/IMMP
- Owner: garrows
- License: other
- Created: 2014-07-04T04:35:29.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2017-01-30T05:33:54.000Z (over 9 years ago)
- Last Synced: 2025-10-09T00:14:22.512Z (9 months ago)
- Language: JavaScript
- Size: 1.96 MB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-projects - IMMP - Image Manipulation Middleware Proxy ⭐3 `JavaScript` (📦 Legacy & Inactive Projects)
README
IMMP: Image Manipulation Middleware Proxy
=========================================
[](https://nodei.co/npm/immp/)
This is an express middleware for manipulating images with imageMagick/graphicsMagic. You can also set it up to act as a proxy.
This is very useful for web development where thumbnails and cropping is done. Instead of doing it by hand, just specify the size and ratio in the url.
`http://localhost:3000/im/?image=test.jpg&crop=16x9&resize=200x113`
If you enable proxy mode, you can proxy images from other services like Amazon S3
`http://localhost:3000/im/?http://s3.amazonaws.com/yourbucket/youimg.png&crop=1x1`
Install
-------
Install the immp module with
```
npm install --save immp
```
You will also need either imageMagick or graphicsMagic installed.
On linux install them using:
```
sudo apt-get install imagemagick graphicsmagick
```
or Mac
```
brew install imagemagick
brew install graphicsmagick
```
Setup
-----
In your app.js (assuming a standard express.js setup), add the following lines.
```
var immp = require('immp');
app.use('/im/*', immp({
ttl: 1000 * 60 * 60 * 24 * 7, // 1 week
imageMagick: true,
graphicsMagick: true,
cacheFolder: os.tmpdir(),
allowProxy: false,
imageDir: process.cwd()
}));
```
All of the config variables are optional and default to the values in the example above.
API Usage
---------
Crop an image to 16:9
`http://localhost:3000/im/?image=test.jpg&crop=16x9`
Resize an image to 100x100
`http://localhost:3000/im/?image=test.jpg&resize=100x100`
Resize to 100x100 and change the ratio to 1:1
`http://localhost:3000/im/?image=test.jpg&crop=1x1&resize=100x100`
Crop the source image to the custom shape (source width, height, x, and y). See
[GraphicsMagic crop](http://www.graphicsmagick.org/GraphicsMagick.html#details-crop)
for more information. Non-negative integers only.
`http://localhost:3000/im/?image=test.jpg&sx=100&sy=100&sw=100&sy=100`
If you enable proxy mode, you can proxy images from other services like Amazon S3
`http://localhost:3000/im/?http://s3.amazonaws.com/yourbucket/youimg.png&crop=1x1`
Development
-----------
If you want to help contribute (thank you), there is an included server and test images in the that will help you. No automated unit tests yet though.
Setup with
```
git clone git@github.com:garrows/IMMP.git
cd IMMP
npm install
npm start
```
Now go to http://localhost:3000/
For faster development open these 2 commands in different windows
```
nodemon
live-reload --port=35729 --delay=600
```