12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- const Canvas = require('./lib/canvas')
- const Image = require('./lib/image')
- const CanvasRenderingContext2D = require('./lib/context2d')
- const CanvasPattern = require('./lib/pattern')
- const parseFont = require('./lib/parse-font')
- const packageJson = require('./package.json')
- const bindings = require('./lib/bindings')
- const fs = require('fs')
- const PNGStream = require('./lib/pngstream')
- const PDFStream = require('./lib/pdfstream')
- const JPEGStream = require('./lib/jpegstream')
- const { DOMPoint, DOMMatrix } = require('./lib/DOMMatrix')
- function createCanvas (width, height, type) {
- return new Canvas(width, height, type)
- }
- function createImageData (array, width, height) {
- return new bindings.ImageData(array, width, height)
- }
- function loadImage (src) {
- return new Promise((resolve, reject) => {
- const image = new Image()
- function cleanup () {
- image.onload = null
- image.onerror = null
- }
- image.onload = () => { cleanup(); resolve(image) }
- image.onerror = (err) => { cleanup(); reject(err) }
- image.src = src
- })
- }
- /**
- * Resolve paths for registerFont. Must be called *before* creating a Canvas
- * instance.
- * @param src {string} Path to font file.
- * @param fontFace {{family: string, weight?: string, style?: string}} Object
- * specifying font information. `weight` and `style` default to `"normal"`.
- */
- function registerFont (src, fontFace) {
- // TODO this doesn't need to be on Canvas; it should just be a static method
- // of `bindings`.
- return Canvas._registerFont(fs.realpathSync(src), fontFace)
- }
- /**
- * Unload all fonts from pango to free up memory
- */
- function deregisterAllFonts () {
- return Canvas._deregisterAllFonts()
- }
- exports.Canvas = Canvas
- exports.Context2d = CanvasRenderingContext2D // Legacy/compat export
- exports.CanvasRenderingContext2D = CanvasRenderingContext2D
- exports.CanvasGradient = bindings.CanvasGradient
- exports.CanvasPattern = CanvasPattern
- exports.Image = Image
- exports.ImageData = bindings.ImageData
- exports.PNGStream = PNGStream
- exports.PDFStream = PDFStream
- exports.JPEGStream = JPEGStream
- exports.DOMMatrix = DOMMatrix
- exports.DOMPoint = DOMPoint
- exports.registerFont = registerFont
- exports.deregisterAllFonts = deregisterAllFonts
- exports.parseFont = parseFont
- exports.createCanvas = createCanvas
- exports.createImageData = createImageData
- exports.loadImage = loadImage
- exports.backends = bindings.Backends
- /** Library version. */
- exports.version = packageJson.version
- /** Cairo version. */
- exports.cairoVersion = bindings.cairoVersion
- /** jpeglib version. */
- exports.jpegVersion = bindings.jpegVersion
- /** gif_lib version. */
- exports.gifVersion = bindings.gifVersion ? bindings.gifVersion.replace(/[^.\d]/g, '') : undefined
- /** freetype version. */
- exports.freetypeVersion = bindings.freetypeVersion
- /** rsvg version. */
- exports.rsvgVersion = bindings.rsvgVersion
- /** pango version. */
- exports.pangoVersion = bindings.pangoVersion
|