1.23.0 / 2016-08-03 * fixed; webpack support #547 sean-shirazi * fixed; windows support - use cross-spawn to spawn processes #537 bdukes * added; allow thumbnail to accept the same options as resize #527 Sebmaster * added; dispose support #487 dlwr * docs; add example of loading image from URL #544 wahengchang * docs; Fix a link in README.md #532 clbn * travis; update travis versions #551 amilajack 1.22.0 / 2016-04-07 * fixed; identity parser: support multi-value keys by creating an array #508 #509 [emaniacs](https://github.com/emaniacs) * fixed; error handling if gm is not installed #499 [aeo3](https://github.com/aeo3) * fixed; highlightColor typo in compare #504 [DanielHudson](https://github.com/DanielHudson) * docs; Fix typo #475 [rodrigoalviani](https://github.com/rodrigoalviani) 1.21.1 / 2015-10-26 * fixed: Fixed #465 hard coded gm binary, also fixed issues with compare and fixed tests so they will fail on subsequent runs when they should do [rwky](https://github.com/rwky) 1.21.0 / 2015-10-26 **contains security fix** * fixed: gm.compare fails to escape arguments properly (Reported by Brendan Scarvell) [rwky](https://github.com/rwky) 1.20.0 / 2015-09-23 * changed: Reverted "Add format inference from filename for buffers/streams" due to errors #448 1.19.0 / 2015-09-16 * changed: Added error to notify about image magick not supporting minify [encima](https://github.com/encima) * changed: Refactored orientation getter to use faster identify call [lbeschastny](https://github.com/lbeschastny) * added: resizeExact function [DanMMX](https://github.com/DanMMX) * added: thumbExact function [DanMMX](https://github.com/DanMMX) * added: Add format inference from filename for buffers/streams [adurrive](https://github.com/adurrive) * fixed: Hex values when passed to compare aren't quoted automatically [DanMMX](https://github.com/DanMMX) * fixed: identify returning last frame size instead of the larges on animated gifs [preynal](https://github.com/preynal) * docs: Updated docs [laurilehmijoki](https://github.com/laurilehmijoki) 1.18.1 / 2015-05-18 * changed: Added io.js support [rwky](https://github.com/rwky) 1.18.0 / 2015-05-18 * changed: Removed support for node 0.8 and added support for 0.12 [rwky](https://github.com/rwky) * changed: Listen to stdin error event for spawn errors [kapouer](https://github.com/kapouer) * changed: Improved error handling when gm isn't installed [FreshXOpenSource](https://github.com/FreshXOpenSource) * changed: Allow append method to use an array of arguments [emohacker](https://github.com/emohacker) * changed: appPath option now specifies full path to gm binary John Borkowski * changed: Ignore warning messages for identify [asrail](https://github.com/asrail) * added: Montage method [donaldpcook](https://github.com/donaldpcook) * added: Progressive option to thumb [mohebifar](https://github.com/mohebifar) * added: Native gm auto-orient for use with gm >= 1.3.18 [bog](https://github.com/bog) * added: Timeout support by passing the timeout option in milliseconds [marcbachmann](https://github.com/marcbachmann) * fixed: density when using ImageMagick [syzer](https://github.com/syzer) * fixed: resize behaviour for falsy values [adius](https://github.com/adius) 1.17.0 / 2014-10-28 ================== * changed: extended compare callback also returns the file names #297 [mastix](https://github.com/mastix) * changed: pass spawn crash to callback #306 [medikoo](https://github.com/medikoo) * changed: geometry supports arbitary string as first argument #330 [jdiez17](https://github.com/jdiez17) * added: support for repage+ option #275 [desigens](https://github.com/desigens) * added: added the dissolve command #300 [microadm](https://github.com/microadam) * added: composite method #332 [jdiez17](https://github.com/jdiez17) * fixed: cannot set tolerance to 0 #302 [rwky](https://github.com/rwky) * fixed: handle empty buffers #330 [alcidesv](https://github.com/alcidesv) 1.16.0 / 2014-05-09 ================== * fixed; dropped "+" when 0 passed as vertical roll amt #267 [dwtkns](https://github.com/dwtkns) * added; highlight-style support #272 [fdecampredon](https://github.com/fdecampredon) 1.15.0 / 2014-05-03 =================== * changed; gm.compare logic to always run the mse comparison as expected #258 [Vokkim](https://github.com/Vokkim) * added; `tolerance` to gm.compare options object #258 [Vokkim](https://github.com/Vokkim) * added; option to set ImageMagick application path explicitly #250 (akreitals) * fixed; gm.compare: support values like 9.51582e-05 #260 [normanrz](https://github.com/normanrz) * README: add call for maintainers 1.14.2 / 2013-12-24 =================== * fixed; background is now a setting #246 (PEM--) 1.14.1 / 2013-12-09 =================== * fixed; identify -verbose colon behavior #240 ludow 1.14.0 / 2013-12-04 =================== * added; compare method for imagemagick (longlho) 1.13.3 / 2013-10-22 =================== * fixed; escape diffOptions.file in compare (dwabyick) 1.13.2 / 2013-10-18 =================== * fixed; density is a setting not an operator 1.13.1 / 2013-09-15 =================== * added; boolean for % crop 1.13.0 / 2013-09-07 =================== * added; morph more than two images (overra) 1.12.2 / 2013-08-29 =================== * fixed; fallback to through in node 0.8 1.12.1 / 2013-08-29 (unpublished) =================== * refactor; replace through with stream.PassThrough 1.12.0 / 2013-08-27 =================== * added; diff image output file (chenglou) 1.11.1 / 2013-08-17 =================== * added; proto.selectFrame(#) * fixed; getters should not ignore frame selection 1.11.0 / 2013-07-23 =================== * added; optional formatting string for gm().identify(format, callback) (tornillo) * removed; error messages when gm/im binary is not installed 1.10.0 / 2013-06-27 =================== * refactor; use native `-auto-orient` for imagemagick 1.9.2 / 2013-06-12 ================== * refactor; move `streamToBuffer` to a separate module * fixed; .stream(format) without a callback 1.9.1 / 2013-05-07 ================== * fixed; gm().resize(width) always only resizes width * fixed; gm('img.gif').format() returns the format of the first frame 1.9.0 / 2013-04-21 ================== * added; node v0.10 support * removed; node < v0.8 support - `Buffer.concat()` * tests; all tests now run on Travis * added; gm().stream() returns a stream when no callback is present * added; gm().toBuffer(callback) * fixed; gm().size() only returns the size of the first frame of a GIF 1.8.2 / 2013-03-07 ================== * include source path in identify data #126 [soupdiver](https://github.com/soupdiver) 1.8.1 / 2012-12-21 ================== * Avoid losing already set arguments on identify #105 #113 #109 [JNissi](https://github.com/JNissi) * tests; add autoOrient + thumb() test * tests; add test case for #113 * tests; added test for #109 * tests; add resize on buffer test 1.8.0 / 2012-12-14 ================== * added; geometry support to scale() #98 * removed; incorrect/broken dissolve() method (never worked) * fixed; handle child_proc error when using Buffer input #109 * fixed; use of Buffers with identify() #109 * fixed; no longer include -size arg with resize() #98 * fixed; remove -size arg from extent() #103 * fixed; magnify support * fixed; autoOrient to work with all types of exif orientations [dambalah](https://github.com/dambalah) #108 * tests; npm test runs unit only (now compatible with travis) * tests; fix magnify test on imagemagick * tests; added for cmd line args 1.7.0 / 2012-12-06 ================== * added; gm.compare support * added; passing Buffers directly [danmilon](https://github.com/danmilon) 1.6.1 / 2012-11-13 ================== * fixed regression; only pass additional params on error #96 1.6.0 / 2012-11-10 ================== * changed; rename internal buffer to _buffer #88 [kof](https://github.com/kof) * changed; optimized identify getters (format, depth, size, color, filesize). #83 please read this for details: https://github.com/aheckmann/gm/commit/8fcf3f8f84a02cc2001da874cbebb89bf7084409 * added; visionmedia/debug support * added; `gm convert -thumbnail` support. _differs from thumb()._ [danmilon](https://github.com/danmilon) * fixed; -rotate 0 support #90 * fixed; multi-execution of same gm instance arguments corruption * fixed; gracefully handle parser errors #94 [eldilibra](https://github.com/eldilibra) 1.5.1 / 2012-10-02 ================== * fixed; passing multiple paths to append() #77 1.5.0 / 2012-09-15 ================== * fixed; callback scope * fixed; append() usage #77 1.4.2 / 2012-08-17 ================== * fixed; identify parsing for ImageMagick exif data (#58) * fixed; when in imageMagick mode, complain about missing imageMagick [bcherry](https://github.com/bcherry) (#73) * added; tests 1.4.1 / 2012-07-31 ================== * fixed; scenes() args * fixed; accept the left-to-right arg of append() * added; _subCommand ## v1.4 - 07/28/2012 * added; adjoin() [Math-] * added; affine() [Math-] * added; append() [Math-] * added; authenticate() [Math-] * added; average() [Math-] * added; backdrop() [Math-] * added; blackThreshold() [Math-] * added; bluePrimary() [Math-] * added; border() [Math-] * added; borderColor() [Math-] * added; box() [Math-] * added; channel() [Math-] * added; clip() [Math-] * added; coalesce() [Math-] * added; colorMap() [Math-] * added; compose() [Math-] * added; compress() [Math-] * added; convolve() [Math-] * added; createDirectories() [Math-] * added; deconstruct() [Math-] * added; delay() [Math-] * added; define() [Math-] * added; displace() [Math-] * added; display() [Math-] * added; dispose() [Math-] * added; disolve() [Math-] * added; encoding() [Math-] * added; endian() [Math-] * added; file() [Math-] * added; flatten() [Math-] * added; foreground() [Math-] * added; frame() [Math-] * added; fuzz() [Math-] * added; gaussian() [Math-] * added; geometry() [Math-] * added; greenPrimary() [Math-] * added; highlightColor() [Math-] * added; highlightStyle() [Math-] * added; iconGeometry() [Math-] * added; intent() [Math-] * added; lat() [Math-] * added; level() [Math-] * added; list() [Math-] * added; log() [Math-] * added; map() [Math-] * added; matte() [Math-] * added; matteColor() [Math-] * added; mask() [Math-] * added; maximumError() [Math-] * added; mode() [Math-] * added; monitor() [Math-] * added; mosaic() [Math-] * added; motionBlur() [Math-] * added; name() [Math-] * added; noop() [Math-] * added; normalize() [Math-] * added; opaque() [Math-] * added; operator() [Math-] * added; orderedDither() [Math-] * added; outputDirectory() [Math-] * added; page() [Math-] * added; pause() [Math-] * added; pen() [Math-] * added; ping() [Math-] * added; pointSize() [Math-] * added; preview() [Math-] * added; process() [Math-] * added; profile() [Math-] * added; progress() [Math-] * added; rawSize() [Math-] * added; randomThreshold() [Math-] * added; recolor() [Math-] * added; redPrimary() [Math-] * added; remote() [Math-] * added; render() [Math-] * added; repage() [Math-] * added; sample() [Math-] * added; samplingFactor() [Math-] * added; scene() [Math-] * added; scenes() [Math-] * added; screen() [Math-] * added; segment() [Math-] * added; set() [Math-] * added; shade() [Math-] * added; shadow() [Math-] * added; sharedMemory() [Math-] * added; shave() [Math-] * added; shear() [Math-] * added; silent() [Math-] * added; snaps() [Math-] * added; stagano() [Math-] * added; stereo() [Math-] * added; textFont() [Math-] * added; texture() [Math-] * added; threshold() [Math-] * added; tile() [Math-] * added; transform() [Math-] * added; transparent() [Math-] * added; treeDepth() [Math-] * added; update() [Math-] * added; units() [Math-] * added; unsharp() [Math-] * added; usePixmap() [Math-] * added; view() [Math-] * added; virtualPixel() [Math-] * added; visual() [Math-] * added; watermark() [Math-] * added; wave() [Math-] * added; whitePoint() [Math-] * added; whiteThreshold() [Math-] * added; window() [Math-] * added; windowGroup() [Math-] ## v1.3.2 - 06/22/2012 * added; node >= 0.7/0.8 compat ## v1.3.1 - 06/06/2012 * fixed; thumb() alignment and cropping [thomaschaaf] * added; hint when graphicsmagick is not installed (#62) * fixed; minify() (#59) ## v1.3.0 - 04/11/2012 * added; flatten support [jwarchol] * added; background support [jwarchol] * fixed; identify parser error [chriso] ## v1.2.0 - 03/30/2012 * added; extent and gravity support [jwarchol] ## v1.1.0 - 03/15/2012 * added; filter() support [travisbeck] * added; density() [travisbeck] * fixed; permit either width or height in resize [dambalah] * updated; docs ## v1.0.5 - 02/15/2012 * added; strip() support [Math-] * added; interlace() support [Math-] * added; setFormat() support [Math-] * fixed; regexps for image types [Math-] ## v1.0.4 - 02/09/2012 * expose utils ## v1.0.3 - 01/27/2012 * removed; console.log ## v1.0.2 - 01/24/2012 * added; debugging info on parser errors * fixed; exports.version ## v1.0.1 - 01/12/2012 * fixed; use of reserved keyword `super` for node v0.5+ ## v1.0.0 - 01/12/2012 * added; autoOrient support [kainosnoema] (#21) * added; orientation support [kainosnoema] (#21) * fixed; identify parser now properly JSON formats all data output by `gm identify` such as IPTC, GPS, Make, etc (#20) * added; support for running as imagemagick (#23, #29) * added; subclassing support; useful for setting default constructor options like one constructor for ImageMagick, the other for GM * added; more tests * changed; remove redundant `orientation`, `resolution`, and `filesize` from `this.data` in `indentify()`. Use their uppercase equivalents. ## v0.6.0 - 12/14/2011 * added; stream support [kainosnoema] (#22) ## v0.5.0 - 07/07/2011 * added; gm#trim() support [lepokle] * added; gm#inputIs() support * fixed; 'geometry does not contain image' error: gh-17 ## v0.4.3 - 05/17/2011 * added; bunch of tests * fixed; polygon, polyline, bezier drawing bug ## v0.4.2 - 05/10/2011 * added; resize options support ## v0.4.1 - 04/28/2011 * shell args are now escaped (thanks @visionmedia) * added; gm.in() * added; gm.out() * various refactoring ## v0.4.0 - 9/21/2010 * removed deprecated `new` method * added drawing docs ## v0.3.2 - 9/06/2010 * new images are now created using same gm() constructor ## v0.3.1 - 9/06/2010 * can now create images from scratch * add type method ## v0.3.0 - 8/26/2010 * add drawing api ## v0.2.2 - 8/22/2010 * add quality option to thumb() * add teropa to contributors * added support for colorspace() ## v0.2.1 - 7/31/2010 * fixed naming conflict. depth() manipulation method renamed bitdepth() * added better docs ## v0.2.0 - 7/29/2010 new methods - swirl - spread - solarize - sharpen - roll - sepia - region - raise - lower - paint - noise - negative - morph - median - antialias - limit - label - implode - gamma - enhance - equalize - emboss - edge - dither - monochrome - despeckle - depth - cycle - contrast - comment - colors added more default args to several methods added more examples ## v0.1.2 - 7/28/2010 * refactor project into separate modules ## v0.1.1 - 7/27/2010 * add modulate method * add colorize method * add charcoal method * add chop method * bug fix in write without a callback ## v0.1.0 - 6/27/2010 * no longer supporting mogrify * add image data getter methods * size * format * color * res * depth * filesize * identify * add new convert methods * scale * resample * rotate * flip * flop * crop * magnify * minify * quality * blur * thumb ## v0.0.1 - 6/11/2010 Initial release