Image manipulation with GraphicsMagick for gulp.
npm install gulp-gm> Image manipulation with gm. Refer to gm's documentation for details.
Install with npm
```
npm install --save-dev gulp-gm
works best with GraphicsMagick.
However, it also supports ImageMagick, but you'll need to set the option imageMagick: true.Make sure GraphicsMagick or ImageMagick is installed on your system and properly set up in your
PATH.Ubuntu:
`shell
apt-get install imagemagick
apt-get install graphicsmagick
`Mac OS X (using Homebrew):
`shell
brew install imagemagick
brew install graphicsmagick
`Windows & others:
- GraphicsMagick: http://www.graphicsmagick.org/download.html
- ImageMagick: http://www.imagemagick.org/script/binary-releases.php
Confirm that GraphicsMagick or ImageMagick is properly set up by executing
gm -version or convert -version in a terminal.
Example
`js
var gulp = require('gulp');
var gm = require('gulp-gm');gulp.task('default', function () {
gulp.src('test.png')
.pipe(gm(function (gmfile) {
return gmfile.resize(100, 100);
}))
.pipe(gulp.dest('dist'));
});
`$3
`js
gulp.src('test.png')
.pipe(gm(function (gmfile) { return gmfile.setFormat('jpg');
}))
.pipe(gulp.dest('dist'));
`$3
`js
gulp.src('test.png')
.pipe(gm(function (gmfile, done) { gmfile.size(function (err, size) {
done(null, gmfile
.stroke("blue", 6)
.fill("transparent")
.drawRectangle(0, 0, size.width, size.height));
});
}))
.pipe(gulp.dest('dist'));
`$3
`js
gulp.src('test.png') .pipe(gm(function (gmfile) {
return gmfile.resize(100, 100);
}, {
imageMagick: true
}))
.pipe(gulp.dest('dist'));
`API
$3
#### modifier(gmfile, [done])
Type:
FunctionSupply a callback that manipulates the image. The first argument will the
gm object with all original properties. Read more in the gm documentation.##### Sync
Make sure to return your modified
gm object.`js
gulp.src('test.png')
.pipe(gm(function (gmfile) {
return gmfile.blur(10);
}))
.pipe(gulp.dest('dist'));
`##### Async
If your call back accepts a second argument (
done), it will be treated asynchronously. Your code will then need to call done(err, gmfile) at some point.`js
gulp.src('test.png')
.pipe(gm(function (gmfile, done) {
gmfile.size(function (err, size) { done(null, gmfile.resize(
size.width * 0.5,
size.height * 0.5
));
});
}))
.pipe(gulp.dest('dist'));
`
#### options.imageMagick
Type:
Boolean
Default value: falseSet to
true when using ImageMagick instead of GraphicsMagick.
Known Issues
*
gm.thumb(...) is not supported because it writes to the file system directly. Consider using gulp-image-resize instead.
Tests
1. You need both ImageMagick and GraphicsMagick installed on your system to run the tests.
2. Install all npm dev dependencies
npm install
3. Install gulp globally npm install -g gulp
4. Run gulp test`MIT © scalable minds