node-pngjs-draw
Adds basic drawing functionnalities to pngjs node module.
Install
$ npm install --save pngjs-draw
Example
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() {
this.drawPixel(150,200, this.colors.black())
this.drawLine(0,0,200,200, this.colors.red(50))
this.fillRect(150,150,75,20, this.colors.black(100))
this.fillRect(50,50,100,100, this.colors.white(100))
this.drawText(20,20, "Hello world !", this.colors.new(255,100,10))
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 :
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