Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

canvas-prebuilt

chearon5.3kMIT2.0.0-alpha.14

Prebuilt versions of node-canvas as a drop-in replacement

canvas, graphic, graphics, pixman, cairo, image, images, pdf

readme

NPM version

This is a drop-in replacement for canvas that does not require any compiling. To use it just npm install canvas-prebuilt or replace canvas with canvas-prebuilt in your dependencies.

You will also need to change require('canvas') to require('canvas-prebuilt').

The repo is just a set of scripts that downloads a specific node-canvas version, builds it and bundles it on all platforms. It's meant to run on Travis and AppVeyor but it can be run locally too

Linux technicalities

Linux users will need glibc >= 2.13.1 (Ubuntu 14.04+, Debian 7+, etc)

If you are using fonts, you might see some FontConfig warnings which are harmless:

Situation Message Meaning
You have an old version of FontConfig on your system Fontconfig warning: line 142: blank doesn't take any effect anymore. please remove it from your fonts.conf You don't need to do anything, but removing said line or upgrading FontConfig on your system should fix it
You don't have FontConfig Fontconfig error: Cannot load default config file You don't have any fonts on your system, so if you want to use the text APIs you'll either need to install FontConfig or use Canvas.registerFont

Releases

More detail on the releases below, this won't be relevant to most users.

Binaries

Make sure your node version is the most recent to guarantee ABI compatibility

canvas@1.4.x
canvas@1.5.x
canvas@1.6.x
canvas@2.0.0-alpha.1
canvas@2.0.0-alpha.2
canvas@2.0.0-alpha.3
node 8 node 7 node 6 node 5 node 4 node 0.12 node 0.10
Linux x64
Windows x64
OSX x64
Windows x86 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹
Linux x86 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹
Linux ARM 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹
canvas@2.0.0-alpha.3
canvas@2.0.0-alpha.4
canvas@2.0.0-alpha.5
node 9 node 8 node 7 node 6 node 5 node 4
Linux x64
Windows x64
OSX x64
Windows x86 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹
Linux x86 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹
Linux ARM 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹ 𐄂¹

¹I have some ideas on how to get these working with cross-compilation if people request it. I plan to add Linux/ARM

Bundling

The bundling scripts just take a regularly compiled executable (canvas.node in this case) and look at which non-system libraries it links against. Those libraries are then copied to the release directory and binaries are updated if necessary to refer to them.

The strategies for bundling could be applied to other projects too since they're general:

  • On macOS, macpack is used to search dependencies, filter out non-system ones, and update binary references
  • On Windows, Dependency Walker's CLI is used to search dependencies. Anything in the MSYS2 folder is considered non-system. Patching is not necessary because Windows looks for dlls in the same folder as the binary
  • On Linux, pax-utils searches dependencies, and everything not in /lib is non-system. The custom binding.gyp compiles canvas.node to look inside its own directory for dependencies

changelog

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

2.0.0 (unreleased -- encompasses all alpha versions)

Upgrading from 1.x

// (1) The quality argument for canvas.createJPEGStream/canvas.jpegStream now
//     goes from 0 to 1 instead of from 0 to 100:
canvas.createJPEGStream({quality: 50}) // old
canvas.createJPEGStream({quality: 0.5}) // new

// (2) The ZLIB compression level and PNG filter options for canvas.toBuffer are
//     now named instead of positional arguments:
canvas.toBuffer(undefined, 3, canvas.PNG_FILTER_NONE) // old
canvas.toBuffer(undefined, {compressionLevel: 3, filters: canvas.PNG_FILTER_NONE}) // new
// or specify the mime type explicitly:
canvas.toBuffer("image/png", {compressionLevel: 3, filters: canvas.PNG_FILTER_NONE}) // new

// (3) #2 also applies for canvas.pngStream, although these arguments were not
//     documented:
canvas.pngStream(3, canvas.PNG_FILTER_NONE) // old
canvas.pngStream({compressionLevel: 3, filters: canvas.PNG_FILTER_NONE}) // new

// (4) canvas.syncPNGStream() and canvas.syncJPEGStream() have been removed:
canvas.syncPNGStream() // old
canvas.createSyncPNGStream() // old
canvas.createPNGStream() // new

canvas.syncJPEGStream() // old
canvas.createSyncJPEGStream() // old
canvas.createJPEGStream() // new

Breaking

  • Drop support for Node.js <6.x
  • Remove sync stream functions (bc53059). Note that most streams are still synchronous (run in the main thread); this change just removed syncPNGStream and syncJPEGStream.
  • Pango is now required on all platforms (7716ae4).
  • Make the quality argument for JPEG output go from 0 to 1 to match HTML spec.
  • Make the compressionLevel and filters arguments for canvas.toBuffer() named instead of positional. Same for canvas.pngStream(), although these arguments were not documented.
  • See also: Correct some of the globalCompositeOperator types under Fixed. These changes were bug-fixes, but will break existing code relying on the incorrect types.

Fixed

  • Fix build with SVG support enabled (#1123)
  • Prevent segfaults caused by loading invalid fonts (#1105)
  • Fix memory leak in font loading
  • Port has_lib.sh to javascript (#872)
  • Correctly sample the edge of images when scaling (#1084)
  • Detect CentOS libjpeg path (b180ea5)
  • Improve measureText accuracy (2bbfec5)
  • Fix memory leak when image callbacks reference the image (1f4b646)
  • Fix putImageData(data, negative, negative) (2102e25)
  • Fix SVG recognition when loading from buffer (77749e6)
  • Re-rasterize SVG when drawing to a context and dimensions changed (79bf232)
  • Prevent JPEG errors from crashing process (#1124)
  • Improve handling of invalid arguments (#1129)
  • Fix repeating patterns when drawing a canvas to itself (#1136)
  • Prevent segfaults caused by creating a too large canvas
  • Fix parse-font regex to allow for whitespaces.
  • Allow assigning non-string values to fillStyle and strokeStyle
  • Fix drawing zero-width and zero-height images.
  • Fix DEP0005 deprecation warning
  • Don't assume data: URIs assigned to img.src are always base64-encoded
  • Fix formatting of color strings (e.g. ctx.fillStyle) on 32-bit platforms
  • Explicitly export symbols for the C++ API
  • Named CSS colors should match case-insensitive
  • Correct some of the globalCompositeOperator types to match the spec:
    • "hsl-hue" is now "hue"
    • "hsl-saturation" is now "saturation"
    • "hsl-color" is now "color"
    • "hsl-luminosity" is now "luminosity"
    • "darker" is now "darken"
    • "dest" is now "destination"
    • "add" is removed (but is the same as "lighter")
    • "source" is now "copy"
  • Provide better, Node.js core-style coded errors for failed sys calls. (For example, provide an error with code 'ENOENT' if setting img.src to a path that does not exist.)

Added

  • Prebuilds (#992) with different libc versions to the prebuilt binary (#1140)
  • Support canvas.getContext("2d", {alpha: boolean}) and canvas.getContext("2d", {pixelFormat: "..."})
  • Support indexed PNG encoding.
  • Support currentTransform (d6714ee)
  • Export CanvasGradient (6a4c0ab)
  • Support #RGBA , #RRGGBBAA hex colors (10a82ec)
  • Support maxWidth arg for fill/strokeText (175b40d)
  • Support image.naturalWidth/Height (a5915f8)
  • Render SVG img elements when librsvg is available (1baf00e)
  • Support ellipse method (4d4a726)
  • Browser-compatible API (6a29a23)
  • Support for jpeg on Windows (42e9a74)
  • Support for backends (1a6dffe)
  • Support for canvas.toBuffer("image/jpeg")
  • Unified configuration options for canvas.toBuffer(), canvas.pngStream() and canvas.jpegStream()
  • Added resolution option for canvas.toBuffer("image/png") and canvas.createPNGStream()
  • Support for canvas.toDataURI("image/jpeg") (sync)
  • Support for img.src = <url> to match browsers
  • Support reading data URL on img.src
  • Readme: add dependencies command for OpenBSD
  • Throw error if calling jpegStream when canvas was not built with JPEG support
  • Emit error if trying to load GIF, SVG or JPEG image when canvas was not built with support for that format

1.6.x (unreleased)

Fixed

  • Make setLineDash able to handle full zeroed dashes (b8cf1d7)
  • Fix reading fillStyle after setting it from gradient to color (a84b2bc)

Added

  • Support for pattern repeat and no-repeat (#1066)
  • Support for context globalAlpha for gradients and patterns (#1064)

1.6.9 / 2017-12-20

Fixed

  • Fix some instances of crashes (7c9ec58, 8b792c3)
  • Fix node 0.x compatibility (dca33f7)

1.6.8 / 2017-12-12

Fixed

  • Faster, more compliant parseFont (4625efa, 37cd969)

1.6.7 / 2017-09-08

Fixed

  • Minimal backport of #985 (rotated text baselines) (c19edb8)

1.6.6 / 2017-05-03

Fixed

  • Use .node extension for requiring native module so webpack works (1b05599)
  • Correct text baseline calculation (#1037)

1.6.5 / 2017-03-18

Changed

  • Parse font using parse-css-font and units-css (d316416)

1.6.4 / 2017-02-26

Fixed

  • Make sure Canvas#toDataURL is always async if callback is passed (8586d72)

1.6.3 / 2017-02-14

Fixed

  • Fix isnan() and isinf() on clang (5941e13)

1.6.2 / 2016-10-30

Fixed

  • Fix deprecation warnings (c264879)
  • Bump nan (e4aea20)

1.6.1 / 2016-10-23

Fixed

  • Make has_lib.sh work on BSD OSes (1727d66)

1.6.0 / 2016-10-16

  • Support canvas.getBuffer('raw') (#819)

1.5.0 / 2016-09-11

  • Crude PDF stream implementation (#781)
  • Update CI settings (#797)
  • Reduce some of the install warnings (#794)
  • Fix lineDash browser tests never finishing (#793)
  • Add issue template (#791)

1.4.0 / 2016-06-03

  • Add support for evenodd fill rule (#762)

1.3.17 / 2016-06-03

  • Removing redundant duplicate calls (#769)
  • Cleanup examples (#776)
  • Fix CanvasRenderingContext2D class name (#777)

1.3.16 / 2016-05-29

  • Fix leak of data when streaming JPEG (#774)

1.3.15 / 2016-05-09

  • Fix segfault in putImageData (#750)

1.3.14 / 2016-05-05

  • Clamp JPEG buffer size (#739)

1.3.13 / 2016-05-01

  • Bumb NAN version (#759)

1.3.12 / 2016-03-01

  • Expose freetype version (#718)
  • Require new in constructor (#717)

1.3.11 / 2016-03-01

  • Properly clamp quality in toDataURL (#728)
  • Strict mode (#719)

1.3.10 / 2016-02-07

  • Fix segfault on node 0.10.x (#712)

1.3.9 / 2016-01-27

  • Allow to unbind onload/onerror callback handlers (#706)

1.3.8 / 2016-01-22

  • Cleanup build scripts and fix pangocairo detection (#701)

1.3.7 / 2016-01-13

  • Don't unbind onload/onerror callbacks after invoking them (#615)

1.3.6 / 2016-01-06

  • Allow optional arguments in toDataURL to be undefined and improve toDataURL's spec compliance (#690)

1.3.5 / 2015-12-07

  • Add image/jpeg support to toDataUrl (#685)

1.3.4 / 2015-11-21

  • Upgrade nan to 2.1.0 (#671)

1.3.3 / 2015-11-21

  • Fix compilation on Visual Studio 2015 (#670)

1.3.2 / 2015-11-18

  • Fix incorrect Y offset and scaling for shadows (#669)

1.3.1 / 2015-11-09

  • Wrap std::min calls in paranthesis to prevent macro expansion on windows (#660)

1.3.0 / 2015-10-26

  • Expose ImageData constructor and make it more spec-compliant (#569)

1.2.11 / 2015-10-20

  • Implement blur on images (#648)

1.2.10 / 2015-10-12

  • Fix segfault in Canvas#jpegStream (#629)

1.2.9 / 2015-09-14

  • Upgrade to Nan 2.x with support for iojs 3.x and Node.js 4.x (#622)

1.2.8 / 2015-08-30

  • Clean up the tests (#612)
  • Replace CanvasPixelArray with Uint8ClampedArray to be API-compliant (#604)
  • Specify travis iojs versions (#611)

1.2.7 / 2015-07-29

  • Avoid future reserved keyword (#592)

1.2.6 / 2015-07-29

  • Fix the build on windows (#589)

1.2.5 / 2015-07-28

  • Another npm release, since 1.2.4 was botched (see #596)

1.2.4 / 2015-07-23

1.2.3 / 2015-05-21

  • Update TJ Holowaychuk's username in the readme
  • Fix segmentation fault in Image::loadFromBuffer when buffer is empty
  • Optimize getImageData()
  • package: add "license" attribute
  • package: update "nan" to v1.8.4
  • package: append .git to "repository" URL

1.2.2 / 2015-04-18

  • Now works on io.js
  • Fix 'drawImage' scaling (the dimensions of the region that gets clipped also needs to be scaled).
  • Fix bug in StreamPNGSync

1.2.1 / 2015-02-10

  • Use non-cairo 1.12 API for shadow blur

1.2.0 / 2015-01-31

  • travis: drop support for node v0.6
  • Merge pull request #507 from salzhrani/iojs
  • io.js compatibility
  • Merge pull request #505 from woodcoder/shadow-blur
  • Fix issue with line width not being correct in stroked shadows.
  • Add another shadow/transform test.
  • Refactor setSourceRGBA to allow the context to be supplied.
  • Simple image shadow (no blurring or handling current transforms) based on image's alpha channel.
  • Test showing issue #133, that images don't have shadows.
  • The +1 on the offset seems to match the browser's output better, but I can't work out why it would be needed (unless it's pixel alignment related).
  • Make the shadow radius more accurately match the browser's, making use of sigma scale as used in SKIA: https://github.com/google/skia/blob/master/src/effects/SkBlurMask.cpp#L26.
  • Create a new image surface to render blurred shadows to, this means that vector formats like PDF will now render blurs.
  • Add recommended calls to flush and dirty buffer, as per http://www.cairographics.org/manual/cairo-Image-Surfaces.html#cairo-image-surface-get-data.
  • Add PDF button to test page to easily generate PDF version of the test image.
  • Fix to ensure shadowOffset is unaffected by the current transform.
  • New test illustrating that canvas implementation doesn't translate the shadowOffset.
  • Merge pull request #490 from AllYearbooks/master
  • Merge pull request #501 from motiz88/hsl-color
  • Code style + attribution. Also removed parseClipped() and commented out wrapInt (now wrap_int).
  • Added visual tests for hsl() and hsla() color parsing.
  • Fixed <number> handling in hsl/hsla color parser. parseNumber() was erroring out on numbers with long fractional parts.
  • hsl/hsla color parsing + rebeccapurple hsl() and hsla() color values are now supported, with corresponding unit tests. Also added rebeccapurple (from CSS Color Level 4) to the named color list.
  • float rather than int for drawImage arguments
  • with_pango to true and use fontconfig to load fonts
  • Merge pull request #399 from nulltask/fix/lighten
  • Merge pull request #465 from espadrine/master
  • Merge pull request #470 from tonylukasavage/patch-1
  • Add one-liner MacPorts install to docs
  • Offer SVG output.
  • Readme update: node-gyp.
  • Readme: fix subheading size
  • Readme: remove Gemnasium badge, use SVG for npm badge
  • Readme: add Travis-CI badge
  • change operator lighter to lighten

1.1.6 / 2014-08-01

  • export canvas.CanvasPixelArray instead of canvas.PixelArray which is undefined
  • Glib version test into giflib exists test
  • Giflib 5.1
  • install: use an even older version of giflib (v4.1.6)
  • install: use an older version of giflib (v4.2.3)
  • install: install giflib
  • install: use more compatible sh syntax
  • travis: attempt to run the ./install script before testintg
  • travis: test node v0.6, v0.8, v0.10, and v0.11
  • Distinguish between 'add' and 'lighter'

1.1.5 / 2014-06-26

  • Readme: remove Contributors section
  • Readme: update copyright
  • On Windows, copy required DLLs next to ".node" file (#442 @pandell)
  • Duplicate "msvc_settings" for "Debug" configuration
  • Remove unneeded #include <nan.h>
  • Use float constants to prevent double->float conversion warning
  • Ignore Visual C++ 2013 warnings (#441 @pandell)
  • Add algorithm include to CanvasRenderingContext2d.cc for std::min (#435 @kkoopa)
  • Updated NAN to 1.2.0 (#434 @kkoopa)

1.1.4 / 2014-06-08

  • Fix compile error with Visual C++
  • Add support for the lineDash API
  • Update NAN
  • New V8 compatibility
  • Correctly limit bounds in PutImageData to prevent segment fault
  • Fix segfault when onload and onerror are not function
  • Add support for Node 0.11.9

1.1.3 / 2014-01-08

  • Add CAIRO_FORMAT_INVALID
  • Readjust the amount of allocated memory
  • Fix argument index for filter parameter
  • Make has_lib.sh work properly on Debian 64bit

1.1.2 / 2013-10-31

  • NAN dep upgrade, full node@<=0.11.8 compatibility
  • Use node::MakeCallback() instead of v8::Function::Call()
  • Improve nan location discovery
  • Fix enabling gif/jpeg options on Ubuntu 13.04

1.1.1 / 2013-10-09

  • add better support for outdated versions of Cairo

1.1.0 / 2013-08-01

  • add png compression options
  • add jpeg stream progressive mode option
  • fix resource leaks on read errors

1.0.4 / 2013-07-23

  • 0.11.4+ compatibility using NAN
  • fix typo in context2d for imageSmoothingEnabled

1.0.3 / 2013-06-04

  • add "nearest" and "bilinear" to patternQuality
  • fix fread() retval check (items not bytes)
  • removed unneeded private fields

1.0.2 / 2013-03-22

  • add Context2d#imageSmoothingEnabled=

1.0.1 / 2013-02-25

  • travis: test modern node versions
  • change the node-gyp build to use pkg-config

1.0.0 / 2013-01-16

  • add conditional pango font support [Julian Viereck]
  • add Canvas#{png,jpeg}Stream() alias of create* legacy methods
  • add support for grayscale JPEGs
  • fix: explicitly cast the after work callback function to "uv_after_work_cb"
  • fix test server for express 3.x
  • fix: call cairo_surface_finish in ~Canvas when pdf
  • remove old 0.4.x binding support. Closes #197

0.13.1 / 2012-08-20

  • fix cases where GIF_LIB_VERSION is not defined
  • fix auto-detection of optional libraries for OS X
  • fix Context2d::SetFont for pango when setting normal weight/style

0.13.0 / 2012-08-12

  • add pango support [c-spencer]
  • add pango / png / jpeg gyp auto-detection [c-spencer]
  • add .gifVersion [tootallnate]
  • add .jpegVersion [tootallnate]
  • add moar gyp stuff [tootallnate]
  • remove wscript
  • fix closure_destroy() with cast for AdjustAmountOfExternalAllocatedMemory()

0.12.1 / 2012-06-29

  • fix jpeg malloc Image issue. Closes #160 [c-spencer]
  • Improve Image mode API
  • Add clearData method to handle reassignment of src, and clean up mime data memory handling.
  • Improve how datalen is managed and use to adjust memory, hide more of mime API behind cairo version conditional.
  • Add optional mime-data tracking to Image.
  • Refactor JPEG decoding into decodeJPEGIntoSurface

0.12.0 / 2012-05-02

  • Added textDrawingMode context property [c-spencer]
  • Added additional TextMetrics properties [c-spencer]

0.11.3 / 2012-04-25

  • Fixed Image memory leak. Closes #150
  • Fixed Context2d::hasShadow()

0.11.2 / 2012-04-12

  • Fixed: pdf memory leak, free closure and surface in ~Canvas

0.11.1 / 2012-04-10

  • Changed: renamed .nextPage() to .addPage()

0.11.0 / 2012-04-10

  • Added quick PDF support
  • Added Canvas#type getter
  • Added ./examples/pdf-images.js
  • Added ./examples/multiple-page-pdf.js
  • Added ./examples/small-pdf.js

0.10.3 / 2012-02-27

  • Fixed quadratic curve starting point for undefined path. Closes #155

0.10.2 / 2012-02-06

  • Fixed: Context2d setters with invalid values ignored
  • Changed: replaced seek with fstat()

0.10.1 / 2012-01-31

  • Added /opt/local/lib to wscript [obarthel]
  • Added bounds checking to rgba_to_string() [obarthel]
  • Fixed cleanup in JPEG Image loading [obarthel]
  • Fixed missing CSS color table values [obarthel]

0.10.0 / 2012-01-18

  • Added ctx.createPattern() [slaskis]

0.9.0 / 2012-01-13

  • Added createJPEGStream() [Elijah Hamovitz]

0.8.3 / 2012-01-04

  • Added support for libjpeg62-dev or libjpeg8-dev [wwlinx]

0.8.2 / 2011-12-14

  • Fixed two memory leaks in context2d [Tharit]
  • Fixed make test-server

0.8.1 / 2011-10-31

  • Added 0.5.x support [TooTallNate]
  • Fixed measureText().width. Closes #126

0.8.0 / 2011-10-28

  • Added data uri support. Closes #49

0.7.3 / 2011-09-14

  • Added better lineTo() / moveTo() exception messages

0.7.2 / 2011-08-30

  • Changed: prefix some private methods with _

0.7.1 / 2011-08-25

  • Added better image format detection
  • Added libpath options to waf configuration; this was necessary to correctly detect gif and jpeg support on FreeBSD

0.7.0 / 2011-07-12

  • Added GIF support [Brian McKinney]

0.6.0 / 2011-06-04

  • Added Image#src=Buffer support. Closes #91
  • Added devDependencies
  • Added source-atop test
  • Added image-src.js example
  • Removed V8::AdjustAmountOfExternalAllocatedMemory() call from toBuffer()
  • Fixed v8 memory hint when resizing canvas [atomizer]

0.5.4 / 2011-04-20

  • Added; special case of zero-width rectangle [atomizer]
  • Fixed; do not clamp arguments to integer values [atomizer]
  • Fixed; preserve current path during fillRect() and strokeRect() [atomizer]
  • Fixed; restorePath(): clear current path before appending [atomizer]

0.5.3 / 2011-04-11

  • Clamp image bounds in PixelArray::PixelArray() [Marcello Bastea-Forte]

0.5.2 / 2011-04-09

  • Changed; make PNGStream a real Stream [Marcello Bastea-Forte]

0.5.1 / 2011-03-16

  • Fixed (kinda) img.src= error handling
  • Fixed; move closure.h down for malloc ref. Closes #80

0.5.0 / 2011-03-14

  • Added several more operators (color-dodge, color-burn, difference, etc)
  • Performance; no longer re-allocating closure->data for each png write
  • Fixed freeing of Context2d states
  • Fixed text alignment / baseline [Olaf]
  • Fixed HandleScopes [Olaf]
  • Fixed small misc memory leaks
  • Fixed Buffer usage for node 0.4.x

0.4.3 / 2011-01-11

  • Fixed font family dereferencing. Closes #72
  • Fixed; stripping of quotes from font-family before applying
  • Fixed duplicate textAlign getter
  • Removed sans-serif default of Arial

0.4.2 / 2010-12-28

  • Fixed font size growing issue after successive calls. Closes #70

0.4.1 / 2010-12-18

  • Fixed; toString() first argument of {fill,stroke}Text(). Closes #68

0.4.0 / 2010-12-12

  • Added drawImage() with Canvas instance support. Closes #67

0.3.3 / 2010-11-30

  • Added CanvasRenderingContext2d#patternQuality accessor, accepting fast, good, and best
  • Fixed; pre-multiply putImageData() components
  • Fixed; PixelArray data is not premultiplied

0.3.2 / 2010-11-26

  • Added --profile option to config
  • Fixed eio_custom segfault(s). Closes #46
  • Fixed two named colors. Closes #62 [thanks noonat]
  • Fixed a few warnings
  • Fixed; freeing data in Image::loadJPEG() on failure
  • Fixed; include jpeglib only when HAVE_JPEG
  • Fixed; using strstr() instead of strnstr()

0.3.1 / 2010-11-24

  • Fixed; Image loading is sync until race-condition is resolved
  • Fixed; Image::loadJPEG() return status based on errno

0.3.0 / 2010-11-24

  • Added arcTo(). Closes #11
  • Added c color parser, ./examples/ray.js is now twice as fast
  • Fixed putImageData() bug messing up rgba channels

0.2.1 / 2010-11-19

  • Added image resize example
  • Fixed canvas resizing via {width,height}=. Closes #57
  • Fixed Canvas#getContext(), caching the CanvasRenderingContext
  • Fixed async image loading (test server still messed)

0.2.0 / 2010-11-18

  • Added jpeg Image support (when libjpeg is available)
  • Added hsl / hsla color support. [Tom Carden]

0.1.0 / 2010-11-17

  • Added Image
  • Added ImageData
  • Added PixelArray
  • Added CanvasRenderingContext2d#drawImage()
  • Added CanvasRenderingContext2d#getImageData()
  • Added CanvasRenderingContext2d#createImageData()
  • Added kraken blur benchmark example
  • Added several new tests
  • Fixed instanceof checks for many c++ methods
  • Fixed test runner in firefox [Don Park]

0.0.8 / 2010-11-12

  • Added CanvasRenderingContext2d#drawImage()
  • Fixed free() call missing stdlib
  • Fixed Image#{width,height} initialization to 0
  • Fixed; load image on non-LOADING state

0.0.7 / 2010-11-12

  • Fixed lighter for older versions of cairo

0.0.6 / 2010-11-12

  • Added Image
  • Added conditional support for cairo 1.10.0 operators

0.0.5 / 2010-11-10

  • Added custom port support to test/server.js
  • Added more global composite operator support
  • Added Context2d#antialias=
  • Added voronoi example
  • Added -D__NDEBUG__ to default build
  • Added BUFFER_DATA macro for backwards compat buffer data access [Don Park]
  • Fixed getter bug preventing patterns from being returned via fillStyle etc

  • Fixed; CAIRO_STATUS_NO_MEMORY_ on failed {re,m}alloc()

  • Fixed; free Canvas::ToBuffer() closure data

0.0.4 / 2010-11-09

  • Bump to fix npm engine cache bug...

0.0.3 / 2010-11-09

  • Added async toDataURL() support
  • Added async toBuffer() support
  • Removed buffer utils

0.0.2 / 2010-11-08

  • Added shadow support (faster/better gaussian blur to come)
  • Added node v0.3 support [Don Park]
  • Added -O3 to build
  • Removed Canvas#savePNG() use Canvas#createPNGStream()

0.0.1 / 2010-11-04

  • Initial release