pngjs-draw

Adds basic drawing functionnalities to pngjs.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
pngjs-draw
520.0.68 years ago8 years agoMinified + gzip package size for pngjs-draw in KB

Readme

node-pngjs-draw
Adds basic drawing functionnalities to pngjs node module.

Install

```sh $ npm install --save pngjs-draw ```

Example

```js var fs = require('fs'); var drawing = require('pngjs-draw'); var png = drawing(require('pngjs').PNG); fs.createReadStream("blue.png") .pipe(new png({ filterType: 4 })) .on('parsed', function() {
// Draws a pixel with transparent green
this.drawPixel(150,200, this.colors.black())
// Draws a line with transparent red
this.drawLine(0,0,200,200, this.colors.red(50))
// Draws a rectangle with transparent black
this.fillRect(150,150,75,20, this.colors.black(100))
// Draws a filled rectangle with transparent white
this.fillRect(50,50,100,100, this.colors.white(100))
// Draws a text with custom color
this.drawText(20,20, "Hello world !", this.colors.new(255,100,10))
// Writes file
this.pack().pipe(fs.createWriteStream('blue.out.png'));
}); ```

Documentation

PNG.prototype.drawPixel

Draws the pixel at the given coordinates with the given color.
  • {int} x The x coordinate of the pixel
  • {int} y The y coordinate of the pixel
  • {Array(byte)} color The color used to paint the pixel

PNG.prototype.drawLine

Draws a line beetween two points with the given color.
  • {int} x0 The x coordinate of the start
  • {int} y0 The y coordinate of the start
  • {int} x1 The x coordinate of the end
  • {int} y1 The y coordinate of the end
  • {Array(byte)} color The color used to paint the line

PNG.prototype.drawRect

Draws a stroked rectangle with the given color.
  • {int} x The top left x coordinate of the rectangle
  • {int} y The top left y coordinate of the rectangle
  • {int} width The width of the rectangle
  • {int} height The height of the rectangle
  • {Array(byte)} color The color used to paint strokes of the rectangle

PNG.prototype.fillRect

Draws a filled rectangle with the given color.
  • {int} x The top left x coordinate of the rectangle
  • {int} y The top left y coordinate of the rectangle
  • {int} width The width of the rectangle
  • {int} height The height of the rectangle
  • {Array(byte)} color The color used to fill the rectangle

PNG.prototype.drawText

Draw a text to the image.
  • {int} x The top left x coordinate of the string
  • {int} y The top left y coordinate of the string
  • {string} text The string value
  • {Array(byte)} color The color used used as foreground
  • {Object} font The font used to render the string (optional)
  • {Object} text The string value
return {int} The length in pixel of the rendered string

PNG.prototype.measureString

Measure the rendered text length with the given font.
  • {string} text The string value
  • {Array(byte)} color The color used used as foreground
  • {Object} font The font used to render the string (optional)
return {int} The length in pixel of the rendered string

Creating colors

[<R>,<G>,<B>,<A>] A color is a javascript array containing Red/Green/Blue/Alpha byte components. PNG.prototype.colors.new = function(r,g,b,a) The new method generates an array with the provided components. Default values :
  • r: 0
  • g: 0
  • b: 0
  • a: 255
``` PNG.prototype.colors.red = function(a) PNG.prototype.colors.greed = function(a) PNG.prototype.colors.blue = function(a) PNG.prototype.colors.black = function(a) PNG.prototype.colors.white = function(a) ``` Helper methods for creating base colors are also available.

Custom fonts

In order to use a custom font, you must first generate a font module from an image presenting all the supported characters. For more details, take a look at these files :
  • build-font.js
  • fonts/*
  • custom-font/*

Roadmap / Ideas

  • More shapes (circles, polygons)
  • Rotations
  • Multi-lines texts

Copyright and license

MIT © Aloïs Deniel